@bbearai/react-native 0.10.1 → 0.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -12838,7 +12838,7 @@ var BugBearClient = class {
12838
12838
  } : {
12839
12839
  // Standalone verification assignment (bug reported without a test case)
12840
12840
  id: item.original_report_id || item.id,
12841
- title: item.notes || "Bug Verification",
12841
+ title: item.notes?.replace(/^Verification:\s*/i, "") || "Bug Verification",
12842
12842
  testKey: "VERIFY",
12843
12843
  description: "Verify that the reported bug has been fixed",
12844
12844
  steps: [],
@@ -15559,27 +15559,27 @@ function HomeScreen({ nav }) {
15559
15559
  /* @__PURE__ */ import_react4.default.createElement(import_react_native4.View, { style: styles7.sessionDot }),
15560
15560
  /* @__PURE__ */ import_react4.default.createElement(import_react_native4.View, { style: styles7.sessionCardContent }, /* @__PURE__ */ import_react4.default.createElement(import_react_native4.Text, { style: styles7.sessionCardTitle, numberOfLines: 1 }, activeSession.focusArea || "QA Session"), /* @__PURE__ */ import_react4.default.createElement(import_react_native4.Text, { style: styles7.sessionCardMeta }, formatTimer(sessionElapsed), " \xB7 ", sessionFindings.length, " finding", sessionFindings.length !== 1 ? "s" : "")),
15561
15561
  /* @__PURE__ */ import_react4.default.createElement(import_react_native4.Text, { style: styles7.sessionCardAction }, "Resume \u2192")
15562
- ) : /* @__PURE__ */ import_react4.default.createElement(
15562
+ ) : /* @__PURE__ */ import_react4.default.createElement(import_react_native4.View, { style: styles7.sessionRow }, /* @__PURE__ */ import_react4.default.createElement(
15563
15563
  import_react_native4.TouchableOpacity,
15564
15564
  {
15565
- style: styles7.sessionCardInactive,
15565
+ style: styles7.sessionTileBlue,
15566
15566
  onPress: () => nav.push({ name: "SESSION_START" }),
15567
15567
  activeOpacity: 0.7
15568
15568
  },
15569
- /* @__PURE__ */ import_react4.default.createElement(import_react_native4.Text, { style: styles7.sessionCardIcon }, "\u{1F50D}"),
15570
- /* @__PURE__ */ import_react4.default.createElement(import_react_native4.Text, { style: styles7.sessionCardLabel }, "Start QA Session"),
15571
- /* @__PURE__ */ import_react4.default.createElement(import_react_native4.Text, { style: styles7.sessionCardArrow }, "\u2192")
15572
- ), !activeSession && nav.startAdHoc && /* @__PURE__ */ import_react4.default.createElement(
15569
+ /* @__PURE__ */ import_react4.default.createElement(import_react_native4.Text, { style: styles7.tileIcon }, "\u{1F50D}"),
15570
+ /* @__PURE__ */ import_react4.default.createElement(import_react_native4.Text, { style: styles7.tileTitle }, "Focused Session"),
15571
+ /* @__PURE__ */ import_react4.default.createElement(import_react_native4.Text, { style: styles7.tileSub }, "Set focus area & track before starting")
15572
+ ), nav.startAdHoc && /* @__PURE__ */ import_react4.default.createElement(
15573
15573
  import_react_native4.TouchableOpacity,
15574
15574
  {
15575
- style: styles7.quickTestCard,
15575
+ style: styles7.sessionTileGreen,
15576
15576
  onPress: () => nav.startAdHoc?.(),
15577
15577
  activeOpacity: 0.7
15578
15578
  },
15579
- /* @__PURE__ */ import_react4.default.createElement(import_react_native4.Text, { style: styles7.quickTestIcon }, "\u26A1"),
15580
- /* @__PURE__ */ import_react4.default.createElement(import_react_native4.View, { style: styles7.quickTestContent }, /* @__PURE__ */ import_react4.default.createElement(import_react_native4.Text, { style: styles7.quickTestTitle }, "Quick Test"), /* @__PURE__ */ import_react4.default.createElement(import_react_native4.Text, { style: styles7.quickTestSub }, "Ad hoc explore & report")),
15581
- /* @__PURE__ */ import_react4.default.createElement(import_react_native4.Text, { style: styles7.sessionCardArrow }, "\u2192")
15582
- ), !activeSession && tasks.length > 0 && /* @__PURE__ */ import_react4.default.createElement(import_react_native4.View, { style: { marginBottom: 20 } }, /* @__PURE__ */ import_react4.default.createElement(import_react_native4.Text, { style: { fontSize: 12, fontWeight: "600", color: colors.textSecondary, textTransform: "uppercase", letterSpacing: 0.5, marginBottom: 8 } }, "Task Checklist"), tasks.map((task) => /* @__PURE__ */ import_react4.default.createElement(
15579
+ /* @__PURE__ */ import_react4.default.createElement(import_react_native4.Text, { style: styles7.tileIcon }, "\u26A1"),
15580
+ /* @__PURE__ */ import_react4.default.createElement(import_react_native4.Text, { style: styles7.tileTitle }, "Quick Test"),
15581
+ /* @__PURE__ */ import_react4.default.createElement(import_react_native4.Text, { style: styles7.tileSub }, "Jump straight in \u2014 no setup needed")
15582
+ )), !activeSession && tasks.length > 0 && /* @__PURE__ */ import_react4.default.createElement(import_react_native4.View, { style: { marginBottom: 20 } }, /* @__PURE__ */ import_react4.default.createElement(import_react_native4.Text, { style: { fontSize: 12, fontWeight: "600", color: colors.textSecondary, textTransform: "uppercase", letterSpacing: 0.5, marginBottom: 8 } }, "Task Checklist"), tasks.map((task) => /* @__PURE__ */ import_react4.default.createElement(
15583
15583
  import_react_native4.TouchableOpacity,
15584
15584
  {
15585
15585
  key: task.id,
@@ -15903,7 +15903,7 @@ function createStyles() {
15903
15903
  fontSize: 13,
15904
15904
  color: colors.blue
15905
15905
  },
15906
- // Session card
15906
+ // Session card (active — running session)
15907
15907
  sessionCardActive: {
15908
15908
  flexDirection: "row",
15909
15909
  alignItems: "center",
@@ -15940,59 +15940,50 @@ function createStyles() {
15940
15940
  fontWeight: "600",
15941
15941
  color: colors.blue
15942
15942
  },
15943
- sessionCardInactive: {
15943
+ sessionCardArrow: {
15944
+ fontSize: 13,
15945
+ color: colors.textMuted
15946
+ },
15947
+ // Session start row — two side-by-side tiles
15948
+ sessionRow: {
15944
15949
  flexDirection: "row",
15945
- alignItems: "center",
15950
+ gap: 10,
15951
+ marginBottom: 16
15952
+ },
15953
+ sessionTileBlue: {
15954
+ flex: 1,
15946
15955
  backgroundColor: colors.card,
15947
15956
  borderWidth: 1,
15948
15957
  borderColor: colors.border,
15958
+ borderTopWidth: 3,
15959
+ borderTopColor: colors.blue,
15949
15960
  borderRadius: 12,
15950
15961
  padding: 12,
15951
- paddingHorizontal: 16,
15952
- gap: 12,
15953
- marginBottom: 16
15962
+ gap: 4
15954
15963
  },
15955
- sessionCardIcon: {
15956
- fontSize: 22
15957
- },
15958
- sessionCardLabel: {
15964
+ sessionTileGreen: {
15959
15965
  flex: 1,
15960
- fontSize: 14,
15961
- fontWeight: "500",
15962
- color: colors.textPrimary
15963
- },
15964
- sessionCardArrow: {
15965
- fontSize: 13,
15966
- color: colors.textMuted
15967
- },
15968
- // Quick Test card
15969
- quickTestCard: {
15970
- flexDirection: "row",
15971
- alignItems: "center",
15972
15966
  backgroundColor: colors.card,
15973
15967
  borderWidth: 1,
15974
15968
  borderColor: colors.border,
15969
+ borderTopWidth: 3,
15970
+ borderTopColor: colors.green,
15975
15971
  borderRadius: 12,
15976
15972
  padding: 12,
15977
- paddingHorizontal: 16,
15978
- gap: 12,
15979
- marginBottom: 16
15973
+ gap: 4
15980
15974
  },
15981
- quickTestIcon: {
15982
- fontSize: 22
15975
+ tileIcon: {
15976
+ fontSize: 20
15983
15977
  },
15984
- quickTestContent: {
15985
- flex: 1
15986
- },
15987
- quickTestTitle: {
15988
- fontSize: 14,
15978
+ tileTitle: {
15979
+ fontSize: 13,
15989
15980
  fontWeight: "600",
15990
15981
  color: colors.textPrimary
15991
15982
  },
15992
- quickTestSub: {
15993
- fontSize: 12,
15983
+ tileSub: {
15984
+ fontSize: 11,
15994
15985
  color: colors.textMuted,
15995
- marginTop: 2
15986
+ lineHeight: 16
15996
15987
  }
15997
15988
  });
15998
15989
  }
@@ -18885,7 +18876,9 @@ function SessionActiveScreen({ nav }) {
18885
18876
  const [elapsed, setElapsed] = (0, import_react21.useState)(0);
18886
18877
  const timerRef = (0, import_react21.useRef)(null);
18887
18878
  (0, import_react21.useEffect)(() => {
18888
- refreshSession();
18879
+ if (!activeSession) {
18880
+ refreshSession();
18881
+ }
18889
18882
  }, []);
18890
18883
  (0, import_react21.useEffect)(() => {
18891
18884
  if (timerRef.current) clearInterval(timerRef.current);
package/dist/index.mjs CHANGED
@@ -12805,7 +12805,7 @@ var BugBearClient = class {
12805
12805
  } : {
12806
12806
  // Standalone verification assignment (bug reported without a test case)
12807
12807
  id: item.original_report_id || item.id,
12808
- title: item.notes || "Bug Verification",
12808
+ title: item.notes?.replace(/^Verification:\s*/i, "") || "Bug Verification",
12809
12809
  testKey: "VERIFY",
12810
12810
  description: "Verify that the reported bug has been fixed",
12811
12811
  steps: [],
@@ -15541,27 +15541,27 @@ function HomeScreen({ nav }) {
15541
15541
  /* @__PURE__ */ React3.createElement(View3, { style: styles7.sessionDot }),
15542
15542
  /* @__PURE__ */ React3.createElement(View3, { style: styles7.sessionCardContent }, /* @__PURE__ */ React3.createElement(Text, { style: styles7.sessionCardTitle, numberOfLines: 1 }, activeSession.focusArea || "QA Session"), /* @__PURE__ */ React3.createElement(Text, { style: styles7.sessionCardMeta }, formatTimer(sessionElapsed), " \xB7 ", sessionFindings.length, " finding", sessionFindings.length !== 1 ? "s" : "")),
15543
15543
  /* @__PURE__ */ React3.createElement(Text, { style: styles7.sessionCardAction }, "Resume \u2192")
15544
- ) : /* @__PURE__ */ React3.createElement(
15544
+ ) : /* @__PURE__ */ React3.createElement(View3, { style: styles7.sessionRow }, /* @__PURE__ */ React3.createElement(
15545
15545
  TouchableOpacity,
15546
15546
  {
15547
- style: styles7.sessionCardInactive,
15547
+ style: styles7.sessionTileBlue,
15548
15548
  onPress: () => nav.push({ name: "SESSION_START" }),
15549
15549
  activeOpacity: 0.7
15550
15550
  },
15551
- /* @__PURE__ */ React3.createElement(Text, { style: styles7.sessionCardIcon }, "\u{1F50D}"),
15552
- /* @__PURE__ */ React3.createElement(Text, { style: styles7.sessionCardLabel }, "Start QA Session"),
15553
- /* @__PURE__ */ React3.createElement(Text, { style: styles7.sessionCardArrow }, "\u2192")
15554
- ), !activeSession && nav.startAdHoc && /* @__PURE__ */ React3.createElement(
15551
+ /* @__PURE__ */ React3.createElement(Text, { style: styles7.tileIcon }, "\u{1F50D}"),
15552
+ /* @__PURE__ */ React3.createElement(Text, { style: styles7.tileTitle }, "Focused Session"),
15553
+ /* @__PURE__ */ React3.createElement(Text, { style: styles7.tileSub }, "Set focus area & track before starting")
15554
+ ), nav.startAdHoc && /* @__PURE__ */ React3.createElement(
15555
15555
  TouchableOpacity,
15556
15556
  {
15557
- style: styles7.quickTestCard,
15557
+ style: styles7.sessionTileGreen,
15558
15558
  onPress: () => nav.startAdHoc?.(),
15559
15559
  activeOpacity: 0.7
15560
15560
  },
15561
- /* @__PURE__ */ React3.createElement(Text, { style: styles7.quickTestIcon }, "\u26A1"),
15562
- /* @__PURE__ */ React3.createElement(View3, { style: styles7.quickTestContent }, /* @__PURE__ */ React3.createElement(Text, { style: styles7.quickTestTitle }, "Quick Test"), /* @__PURE__ */ React3.createElement(Text, { style: styles7.quickTestSub }, "Ad hoc explore & report")),
15563
- /* @__PURE__ */ React3.createElement(Text, { style: styles7.sessionCardArrow }, "\u2192")
15564
- ), !activeSession && tasks.length > 0 && /* @__PURE__ */ React3.createElement(View3, { style: { marginBottom: 20 } }, /* @__PURE__ */ React3.createElement(Text, { style: { fontSize: 12, fontWeight: "600", color: colors.textSecondary, textTransform: "uppercase", letterSpacing: 0.5, marginBottom: 8 } }, "Task Checklist"), tasks.map((task) => /* @__PURE__ */ React3.createElement(
15561
+ /* @__PURE__ */ React3.createElement(Text, { style: styles7.tileIcon }, "\u26A1"),
15562
+ /* @__PURE__ */ React3.createElement(Text, { style: styles7.tileTitle }, "Quick Test"),
15563
+ /* @__PURE__ */ React3.createElement(Text, { style: styles7.tileSub }, "Jump straight in \u2014 no setup needed")
15564
+ )), !activeSession && tasks.length > 0 && /* @__PURE__ */ React3.createElement(View3, { style: { marginBottom: 20 } }, /* @__PURE__ */ React3.createElement(Text, { style: { fontSize: 12, fontWeight: "600", color: colors.textSecondary, textTransform: "uppercase", letterSpacing: 0.5, marginBottom: 8 } }, "Task Checklist"), tasks.map((task) => /* @__PURE__ */ React3.createElement(
15565
15565
  TouchableOpacity,
15566
15566
  {
15567
15567
  key: task.id,
@@ -15885,7 +15885,7 @@ function createStyles() {
15885
15885
  fontSize: 13,
15886
15886
  color: colors.blue
15887
15887
  },
15888
- // Session card
15888
+ // Session card (active — running session)
15889
15889
  sessionCardActive: {
15890
15890
  flexDirection: "row",
15891
15891
  alignItems: "center",
@@ -15922,59 +15922,50 @@ function createStyles() {
15922
15922
  fontWeight: "600",
15923
15923
  color: colors.blue
15924
15924
  },
15925
- sessionCardInactive: {
15925
+ sessionCardArrow: {
15926
+ fontSize: 13,
15927
+ color: colors.textMuted
15928
+ },
15929
+ // Session start row — two side-by-side tiles
15930
+ sessionRow: {
15926
15931
  flexDirection: "row",
15927
- alignItems: "center",
15932
+ gap: 10,
15933
+ marginBottom: 16
15934
+ },
15935
+ sessionTileBlue: {
15936
+ flex: 1,
15928
15937
  backgroundColor: colors.card,
15929
15938
  borderWidth: 1,
15930
15939
  borderColor: colors.border,
15940
+ borderTopWidth: 3,
15941
+ borderTopColor: colors.blue,
15931
15942
  borderRadius: 12,
15932
15943
  padding: 12,
15933
- paddingHorizontal: 16,
15934
- gap: 12,
15935
- marginBottom: 16
15944
+ gap: 4
15936
15945
  },
15937
- sessionCardIcon: {
15938
- fontSize: 22
15939
- },
15940
- sessionCardLabel: {
15946
+ sessionTileGreen: {
15941
15947
  flex: 1,
15942
- fontSize: 14,
15943
- fontWeight: "500",
15944
- color: colors.textPrimary
15945
- },
15946
- sessionCardArrow: {
15947
- fontSize: 13,
15948
- color: colors.textMuted
15949
- },
15950
- // Quick Test card
15951
- quickTestCard: {
15952
- flexDirection: "row",
15953
- alignItems: "center",
15954
15948
  backgroundColor: colors.card,
15955
15949
  borderWidth: 1,
15956
15950
  borderColor: colors.border,
15951
+ borderTopWidth: 3,
15952
+ borderTopColor: colors.green,
15957
15953
  borderRadius: 12,
15958
15954
  padding: 12,
15959
- paddingHorizontal: 16,
15960
- gap: 12,
15961
- marginBottom: 16
15955
+ gap: 4
15962
15956
  },
15963
- quickTestIcon: {
15964
- fontSize: 22
15957
+ tileIcon: {
15958
+ fontSize: 20
15965
15959
  },
15966
- quickTestContent: {
15967
- flex: 1
15968
- },
15969
- quickTestTitle: {
15970
- fontSize: 14,
15960
+ tileTitle: {
15961
+ fontSize: 13,
15971
15962
  fontWeight: "600",
15972
15963
  color: colors.textPrimary
15973
15964
  },
15974
- quickTestSub: {
15975
- fontSize: 12,
15965
+ tileSub: {
15966
+ fontSize: 11,
15976
15967
  color: colors.textMuted,
15977
- marginTop: 2
15968
+ lineHeight: 16
15978
15969
  }
15979
15970
  });
15980
15971
  }
@@ -18867,7 +18858,9 @@ function SessionActiveScreen({ nav }) {
18867
18858
  const [elapsed, setElapsed] = useState16(0);
18868
18859
  const timerRef = useRef6(null);
18869
18860
  useEffect11(() => {
18870
- refreshSession();
18861
+ if (!activeSession) {
18862
+ refreshSession();
18863
+ }
18871
18864
  }, []);
18872
18865
  useEffect11(() => {
18873
18866
  if (timerRef.current) clearInterval(timerRef.current);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bbearai/react-native",
3
- "version": "0.10.1",
3
+ "version": "0.10.2",
4
4
  "description": "BugBear React Native components for mobile apps",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",