@bbearai/react 0.4.2 → 0.4.4
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/README.md +21 -1
- package/dist/index.js +316 -235
- package/dist/index.mjs +307 -236
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
2
3
|
var __defProp = Object.defineProperty;
|
|
3
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
5
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
8
|
var __export = (target, all) => {
|
|
7
9
|
for (var name in all)
|
|
@@ -15,6 +17,14 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
17
|
}
|
|
16
18
|
return to;
|
|
17
19
|
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
18
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
29
|
|
|
20
30
|
// src/index.tsx
|
|
@@ -243,6 +253,14 @@ function BugBearProvider({ config, children, enabled = true }) {
|
|
|
243
253
|
initializeBugBear(newClient);
|
|
244
254
|
}
|
|
245
255
|
}, [enabled, config, initializeBugBear]);
|
|
256
|
+
(0, import_react.useEffect)(() => {
|
|
257
|
+
if (!client || !isTester || !isQAEnabled) return;
|
|
258
|
+
const interval = setInterval(() => {
|
|
259
|
+
refreshThreads();
|
|
260
|
+
refreshIssueCounts();
|
|
261
|
+
}, 3e4);
|
|
262
|
+
return () => clearInterval(interval);
|
|
263
|
+
}, [client, isTester, isQAEnabled, refreshThreads, refreshIssueCounts]);
|
|
246
264
|
const currentAssignment = assignments.find(
|
|
247
265
|
(a) => a.status === "in_progress"
|
|
248
266
|
) || assignments.find(
|
|
@@ -2565,18 +2583,72 @@ var styles = {
|
|
|
2565
2583
|
};
|
|
2566
2584
|
|
|
2567
2585
|
// src/widget/screens/ReportScreen.tsx
|
|
2568
|
-
var import_react8 = require("react");
|
|
2586
|
+
var import_react8 = __toESM(require("react"));
|
|
2587
|
+
|
|
2588
|
+
// src/widget/CategoryDropdown.tsx
|
|
2569
2589
|
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
2590
|
+
var categoryOptions = [
|
|
2591
|
+
{ value: "ui_ux", label: "UI/UX", icon: "\u{1F3A8}" },
|
|
2592
|
+
{ value: "functional", label: "Functional", icon: "\u2699\uFE0F" },
|
|
2593
|
+
{ value: "crash", label: "Crash", icon: "\u{1F4A5}" },
|
|
2594
|
+
{ value: "security", label: "Security", icon: "\u{1F510}" },
|
|
2595
|
+
{ value: "other", label: "Other", icon: "\u{1F4DD}" }
|
|
2596
|
+
];
|
|
2597
|
+
function CategoryDropdown({ value, onChange, optional = true, disabled = false }) {
|
|
2598
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
|
|
2599
|
+
"select",
|
|
2600
|
+
{
|
|
2601
|
+
value: value || "",
|
|
2602
|
+
onChange: (e) => onChange(e.target.value ? e.target.value : null),
|
|
2603
|
+
disabled,
|
|
2604
|
+
style: {
|
|
2605
|
+
width: "100%",
|
|
2606
|
+
backgroundColor: disabled ? colors.bg : colors.card,
|
|
2607
|
+
border: `1px solid ${colors.border}`,
|
|
2608
|
+
borderRadius: 8,
|
|
2609
|
+
padding: "10px 12px",
|
|
2610
|
+
fontSize: 14,
|
|
2611
|
+
color: colors.textPrimary,
|
|
2612
|
+
cursor: disabled ? "not-allowed" : "pointer",
|
|
2613
|
+
opacity: disabled ? 0.5 : 1,
|
|
2614
|
+
appearance: "none",
|
|
2615
|
+
backgroundImage: `url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2371717a' d='M3 5l3 3 3-3'/%3E%3C/svg%3E")`,
|
|
2616
|
+
backgroundRepeat: "no-repeat",
|
|
2617
|
+
backgroundPosition: "right 12px center",
|
|
2618
|
+
paddingRight: 32
|
|
2619
|
+
},
|
|
2620
|
+
children: [
|
|
2621
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("option", { value: "", children: optional ? "Select category (optional)" : "Select category" }),
|
|
2622
|
+
categoryOptions.map(({ value: value2, label, icon }) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("option", { value: value2, children: [
|
|
2623
|
+
icon,
|
|
2624
|
+
" ",
|
|
2625
|
+
label
|
|
2626
|
+
] }, value2))
|
|
2627
|
+
]
|
|
2628
|
+
}
|
|
2629
|
+
);
|
|
2630
|
+
}
|
|
2631
|
+
|
|
2632
|
+
// src/widget/screens/ReportScreen.tsx
|
|
2633
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
2570
2634
|
function ReportScreen({ nav, prefill }) {
|
|
2571
2635
|
const { client, refreshAssignments, uploadImage } = useBugBear();
|
|
2572
2636
|
const images = useImageAttachments(uploadImage, 5, "screenshots");
|
|
2573
2637
|
const [reportType, setReportType] = (0, import_react8.useState)(prefill?.type || "bug");
|
|
2574
2638
|
const [severity, setSeverity] = (0, import_react8.useState)("medium");
|
|
2639
|
+
const [category, setCategory] = (0, import_react8.useState)(null);
|
|
2575
2640
|
const [description, setDescription] = (0, import_react8.useState)("");
|
|
2576
2641
|
const [affectedRoute, setAffectedRoute] = (0, import_react8.useState)("");
|
|
2577
2642
|
const [submitting, setSubmitting] = (0, import_react8.useState)(false);
|
|
2578
2643
|
const [error, setError] = (0, import_react8.useState)(null);
|
|
2579
2644
|
const submittingRef = (0, import_react8.useRef)(false);
|
|
2645
|
+
import_react8.default.useEffect(() => {
|
|
2646
|
+
if (reportType === "feedback" || reportType === "suggestion") {
|
|
2647
|
+
setCategory("other");
|
|
2648
|
+
} else {
|
|
2649
|
+
setCategory(null);
|
|
2650
|
+
}
|
|
2651
|
+
}, [reportType]);
|
|
2580
2652
|
const observedRoute = (0, import_react8.useRef)(
|
|
2581
2653
|
typeof window !== "undefined" ? window.location.pathname : "unknown"
|
|
2582
2654
|
);
|
|
@@ -2599,6 +2671,7 @@ function ReportScreen({ nav, prefill }) {
|
|
|
2599
2671
|
type: reportType,
|
|
2600
2672
|
description: description.trim(),
|
|
2601
2673
|
severity: isBugType ? severity : void 0,
|
|
2674
|
+
category: category || void 0,
|
|
2602
2675
|
screenshots: screenshotUrls.length > 0 ? screenshotUrls : void 0,
|
|
2603
2676
|
assignmentId: prefill?.assignmentId,
|
|
2604
2677
|
testCaseId: prefill?.testCaseId,
|
|
@@ -2632,17 +2705,17 @@ function ReportScreen({ nav, prefill }) {
|
|
|
2632
2705
|
{ sev: "medium", color: "#eab308" },
|
|
2633
2706
|
{ sev: "low", color: "#6b7280" }
|
|
2634
2707
|
];
|
|
2635
|
-
return /* @__PURE__ */ (0,
|
|
2636
|
-
/* @__PURE__ */ (0,
|
|
2637
|
-
/* @__PURE__ */ (0,
|
|
2638
|
-
/* @__PURE__ */ (0,
|
|
2639
|
-
/* @__PURE__ */ (0,
|
|
2640
|
-
/* @__PURE__ */ (0,
|
|
2708
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { children: isRetestFailure ? /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_jsx_runtime9.Fragment, { children: [
|
|
2709
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: styles2.retestBanner, children: [
|
|
2710
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: { fontSize: 16 }, children: "\u{1F504}" }),
|
|
2711
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { children: [
|
|
2712
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: styles2.retestTitle, children: "Bug Still Present" }),
|
|
2713
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: styles2.retestSubtitle, children: "The fix did not resolve this issue" })
|
|
2641
2714
|
] })
|
|
2642
2715
|
] }),
|
|
2643
|
-
/* @__PURE__ */ (0,
|
|
2644
|
-
/* @__PURE__ */ (0,
|
|
2645
|
-
/* @__PURE__ */ (0,
|
|
2716
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: styles2.section, children: [
|
|
2717
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: styles2.label, children: "Severity" }),
|
|
2718
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: styles2.severityRow, children: severityOptions.map(({ sev, color }) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2646
2719
|
"button",
|
|
2647
2720
|
{
|
|
2648
2721
|
onClick: () => setSeverity(sev),
|
|
@@ -2650,14 +2723,18 @@ function ReportScreen({ nav, prefill }) {
|
|
|
2650
2723
|
...styles2.sevButton,
|
|
2651
2724
|
...severity === sev ? { backgroundColor: `${color}30`, borderColor: color } : {}
|
|
2652
2725
|
},
|
|
2653
|
-
children: /* @__PURE__ */ (0,
|
|
2726
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: { ...styles2.sevText, ...severity === sev ? { color } : {} }, children: sev })
|
|
2654
2727
|
},
|
|
2655
2728
|
sev
|
|
2656
2729
|
)) })
|
|
2657
2730
|
] }),
|
|
2658
|
-
/* @__PURE__ */ (0,
|
|
2659
|
-
/* @__PURE__ */ (0,
|
|
2660
|
-
/* @__PURE__ */ (0,
|
|
2731
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: styles2.section, children: [
|
|
2732
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: styles2.label, children: "Category (optional)" }),
|
|
2733
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(CategoryDropdown, { value: category, onChange: setCategory, optional: true })
|
|
2734
|
+
] }),
|
|
2735
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: styles2.section, children: [
|
|
2736
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: styles2.label, children: "What went wrong?" }),
|
|
2737
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2661
2738
|
"textarea",
|
|
2662
2739
|
{
|
|
2663
2740
|
style: styles2.descInput,
|
|
@@ -2668,7 +2745,7 @@ function ReportScreen({ nav, prefill }) {
|
|
|
2668
2745
|
}
|
|
2669
2746
|
)
|
|
2670
2747
|
] }),
|
|
2671
|
-
/* @__PURE__ */ (0,
|
|
2748
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2672
2749
|
ImagePickerButtons,
|
|
2673
2750
|
{
|
|
2674
2751
|
images: images.images,
|
|
@@ -2679,8 +2756,8 @@ function ReportScreen({ nav, prefill }) {
|
|
|
2679
2756
|
label: "Attachments (optional)"
|
|
2680
2757
|
}
|
|
2681
2758
|
),
|
|
2682
|
-
error && /* @__PURE__ */ (0,
|
|
2683
|
-
/* @__PURE__ */ (0,
|
|
2759
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: styles2.errorBanner, children: error }),
|
|
2760
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2684
2761
|
"button",
|
|
2685
2762
|
{
|
|
2686
2763
|
style: {
|
|
@@ -2693,9 +2770,9 @@ function ReportScreen({ nav, prefill }) {
|
|
|
2693
2770
|
children: images.isUploading ? "Uploading images..." : submitting ? "Submitting..." : error ? "Retry" : "Submit Failed Retest"
|
|
2694
2771
|
}
|
|
2695
2772
|
)
|
|
2696
|
-
] }) : /* @__PURE__ */ (0,
|
|
2697
|
-
/* @__PURE__ */ (0,
|
|
2698
|
-
/* @__PURE__ */ (0,
|
|
2773
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_jsx_runtime9.Fragment, { children: [
|
|
2774
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: styles2.label, children: "What are you reporting?" }),
|
|
2775
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: styles2.typeRow, children: typeOptions.map(({ type, label, icon }) => /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
2699
2776
|
"button",
|
|
2700
2777
|
{
|
|
2701
2778
|
onClick: () => setReportType(type),
|
|
@@ -2704,8 +2781,8 @@ function ReportScreen({ nav, prefill }) {
|
|
|
2704
2781
|
...reportType === type ? styles2.typeCardActive : {}
|
|
2705
2782
|
},
|
|
2706
2783
|
children: [
|
|
2707
|
-
/* @__PURE__ */ (0,
|
|
2708
|
-
/* @__PURE__ */ (0,
|
|
2784
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: styles2.typeIcon, children: icon }),
|
|
2785
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2709
2786
|
"div",
|
|
2710
2787
|
{
|
|
2711
2788
|
style: {
|
|
@@ -2719,9 +2796,9 @@ function ReportScreen({ nav, prefill }) {
|
|
|
2719
2796
|
},
|
|
2720
2797
|
type
|
|
2721
2798
|
)) }),
|
|
2722
|
-
isBugType && /* @__PURE__ */ (0,
|
|
2723
|
-
/* @__PURE__ */ (0,
|
|
2724
|
-
/* @__PURE__ */ (0,
|
|
2799
|
+
isBugType && /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: styles2.section, children: [
|
|
2800
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: styles2.label, children: "Severity" }),
|
|
2801
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: styles2.severityRow, children: severityOptions.map(({ sev, color }) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2725
2802
|
"button",
|
|
2726
2803
|
{
|
|
2727
2804
|
onClick: () => setSeverity(sev),
|
|
@@ -2732,7 +2809,7 @@ function ReportScreen({ nav, prefill }) {
|
|
|
2732
2809
|
borderColor: color
|
|
2733
2810
|
} : {}
|
|
2734
2811
|
},
|
|
2735
|
-
children: /* @__PURE__ */ (0,
|
|
2812
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2736
2813
|
"span",
|
|
2737
2814
|
{
|
|
2738
2815
|
style: {
|
|
@@ -2746,9 +2823,13 @@ function ReportScreen({ nav, prefill }) {
|
|
|
2746
2823
|
sev
|
|
2747
2824
|
)) })
|
|
2748
2825
|
] }),
|
|
2749
|
-
/* @__PURE__ */ (0,
|
|
2750
|
-
/* @__PURE__ */ (0,
|
|
2751
|
-
/* @__PURE__ */ (0,
|
|
2826
|
+
isBugType && /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: styles2.section, children: [
|
|
2827
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: styles2.label, children: "Category (optional)" }),
|
|
2828
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(CategoryDropdown, { value: category, onChange: setCategory, optional: true })
|
|
2829
|
+
] }),
|
|
2830
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: styles2.section, children: [
|
|
2831
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: styles2.label, children: "What happened?" }),
|
|
2832
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2752
2833
|
"textarea",
|
|
2753
2834
|
{
|
|
2754
2835
|
style: styles2.descInput,
|
|
@@ -2759,9 +2840,9 @@ function ReportScreen({ nav, prefill }) {
|
|
|
2759
2840
|
}
|
|
2760
2841
|
)
|
|
2761
2842
|
] }),
|
|
2762
|
-
isBugType && /* @__PURE__ */ (0,
|
|
2763
|
-
/* @__PURE__ */ (0,
|
|
2764
|
-
/* @__PURE__ */ (0,
|
|
2843
|
+
isBugType && /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: styles2.section, children: [
|
|
2844
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: styles2.label, children: "Where did it happen?" }),
|
|
2845
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2765
2846
|
"input",
|
|
2766
2847
|
{
|
|
2767
2848
|
style: styles2.routeInput,
|
|
@@ -2770,13 +2851,13 @@ function ReportScreen({ nav, prefill }) {
|
|
|
2770
2851
|
placeholder: observedRoute.current
|
|
2771
2852
|
}
|
|
2772
2853
|
),
|
|
2773
|
-
/* @__PURE__ */ (0,
|
|
2854
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: styles2.routeHint, children: [
|
|
2774
2855
|
"Leave blank to use current page (",
|
|
2775
2856
|
observedRoute.current,
|
|
2776
2857
|
")"
|
|
2777
2858
|
] })
|
|
2778
2859
|
] }),
|
|
2779
|
-
/* @__PURE__ */ (0,
|
|
2860
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2780
2861
|
ImagePickerButtons,
|
|
2781
2862
|
{
|
|
2782
2863
|
images: images.images,
|
|
@@ -2787,8 +2868,8 @@ function ReportScreen({ nav, prefill }) {
|
|
|
2787
2868
|
label: "Screenshots (optional)"
|
|
2788
2869
|
}
|
|
2789
2870
|
),
|
|
2790
|
-
error && /* @__PURE__ */ (0,
|
|
2791
|
-
/* @__PURE__ */ (0,
|
|
2871
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: styles2.errorBanner, children: error }),
|
|
2872
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2792
2873
|
"button",
|
|
2793
2874
|
{
|
|
2794
2875
|
style: {
|
|
@@ -2953,16 +3034,16 @@ var styles2 = {
|
|
|
2953
3034
|
|
|
2954
3035
|
// src/widget/screens/ReportSuccessScreen.tsx
|
|
2955
3036
|
var import_react9 = require("react");
|
|
2956
|
-
var
|
|
3037
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
2957
3038
|
function ReportSuccessScreen({ nav }) {
|
|
2958
3039
|
(0, import_react9.useEffect)(() => {
|
|
2959
3040
|
const timer = setTimeout(() => nav.reset(), 2e3);
|
|
2960
3041
|
return () => clearTimeout(timer);
|
|
2961
3042
|
}, [nav]);
|
|
2962
|
-
return /* @__PURE__ */ (0,
|
|
2963
|
-
/* @__PURE__ */ (0,
|
|
2964
|
-
/* @__PURE__ */ (0,
|
|
2965
|
-
/* @__PURE__ */ (0,
|
|
3043
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { style: styles3.container, children: [
|
|
3044
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { style: styles3.emoji, children: "\u{1F389}" }),
|
|
3045
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { style: styles3.title, children: "Report submitted!" }),
|
|
3046
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { style: styles3.subtitle, children: "Thank you for your feedback" })
|
|
2966
3047
|
] });
|
|
2967
3048
|
}
|
|
2968
3049
|
var styles3 = {
|
|
@@ -2991,11 +3072,11 @@ var styles3 = {
|
|
|
2991
3072
|
};
|
|
2992
3073
|
|
|
2993
3074
|
// src/widget/screens/MessageListScreen.tsx
|
|
2994
|
-
var
|
|
3075
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
2995
3076
|
function MessageListScreen({ nav }) {
|
|
2996
3077
|
const { threads, unreadCount, refreshThreads } = useBugBear();
|
|
2997
|
-
return /* @__PURE__ */ (0,
|
|
2998
|
-
/* @__PURE__ */ (0,
|
|
3078
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { children: [
|
|
3079
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2999
3080
|
"button",
|
|
3000
3081
|
{
|
|
3001
3082
|
style: {
|
|
@@ -3014,7 +3095,7 @@ function MessageListScreen({ nav }) {
|
|
|
3014
3095
|
children: "\u2709\uFE0F New Message"
|
|
3015
3096
|
}
|
|
3016
3097
|
),
|
|
3017
|
-
threads.length === 0 ? /* @__PURE__ */ (0,
|
|
3098
|
+
threads.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
3018
3099
|
"div",
|
|
3019
3100
|
{
|
|
3020
3101
|
style: {
|
|
@@ -3025,8 +3106,8 @@ function MessageListScreen({ nav }) {
|
|
|
3025
3106
|
paddingBottom: 40
|
|
3026
3107
|
},
|
|
3027
3108
|
children: [
|
|
3028
|
-
/* @__PURE__ */ (0,
|
|
3029
|
-
/* @__PURE__ */ (0,
|
|
3109
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { style: { fontSize: 36, marginBottom: 12 }, children: "\u{1F4AC}" }),
|
|
3110
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
3030
3111
|
"span",
|
|
3031
3112
|
{
|
|
3032
3113
|
style: {
|
|
@@ -3038,7 +3119,7 @@ function MessageListScreen({ nav }) {
|
|
|
3038
3119
|
children: "No messages yet"
|
|
3039
3120
|
}
|
|
3040
3121
|
),
|
|
3041
|
-
/* @__PURE__ */ (0,
|
|
3122
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
3042
3123
|
"span",
|
|
3043
3124
|
{
|
|
3044
3125
|
style: {
|
|
@@ -3051,7 +3132,7 @@ function MessageListScreen({ nav }) {
|
|
|
3051
3132
|
)
|
|
3052
3133
|
]
|
|
3053
3134
|
}
|
|
3054
|
-
) : /* @__PURE__ */ (0,
|
|
3135
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { children: threads.map((thread) => /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
3055
3136
|
"button",
|
|
3056
3137
|
{
|
|
3057
3138
|
style: {
|
|
@@ -3069,8 +3150,8 @@ function MessageListScreen({ nav }) {
|
|
|
3069
3150
|
},
|
|
3070
3151
|
onClick: () => nav.push({ name: "THREAD_DETAIL", thread }),
|
|
3071
3152
|
children: [
|
|
3072
|
-
/* @__PURE__ */ (0,
|
|
3073
|
-
/* @__PURE__ */ (0,
|
|
3153
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { style: { display: "flex", flex: 1, minWidth: 0 }, children: [
|
|
3154
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
3074
3155
|
"span",
|
|
3075
3156
|
{
|
|
3076
3157
|
style: {
|
|
@@ -3082,7 +3163,7 @@ function MessageListScreen({ nav }) {
|
|
|
3082
3163
|
children: getThreadTypeIcon(thread.threadType)
|
|
3083
3164
|
}
|
|
3084
3165
|
),
|
|
3085
|
-
/* @__PURE__ */ (0,
|
|
3166
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
3086
3167
|
"div",
|
|
3087
3168
|
{
|
|
3088
3169
|
style: {
|
|
@@ -3090,7 +3171,7 @@ function MessageListScreen({ nav }) {
|
|
|
3090
3171
|
minWidth: 0
|
|
3091
3172
|
},
|
|
3092
3173
|
children: [
|
|
3093
|
-
/* @__PURE__ */ (0,
|
|
3174
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
3094
3175
|
"div",
|
|
3095
3176
|
{
|
|
3096
3177
|
style: {
|
|
@@ -3099,8 +3180,8 @@ function MessageListScreen({ nav }) {
|
|
|
3099
3180
|
gap: 4
|
|
3100
3181
|
},
|
|
3101
3182
|
children: [
|
|
3102
|
-
thread.isPinned && /* @__PURE__ */ (0,
|
|
3103
|
-
/* @__PURE__ */ (0,
|
|
3183
|
+
thread.isPinned && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { style: { fontSize: 12, flexShrink: 0 }, children: "\u{1F4CC}" }),
|
|
3184
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
3104
3185
|
"span",
|
|
3105
3186
|
{
|
|
3106
3187
|
style: {
|
|
@@ -3117,7 +3198,7 @@ function MessageListScreen({ nav }) {
|
|
|
3117
3198
|
]
|
|
3118
3199
|
}
|
|
3119
3200
|
),
|
|
3120
|
-
thread.lastMessage && /* @__PURE__ */ (0,
|
|
3201
|
+
thread.lastMessage && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
3121
3202
|
"span",
|
|
3122
3203
|
{
|
|
3123
3204
|
style: {
|
|
@@ -3141,7 +3222,7 @@ function MessageListScreen({ nav }) {
|
|
|
3141
3222
|
}
|
|
3142
3223
|
)
|
|
3143
3224
|
] }),
|
|
3144
|
-
/* @__PURE__ */ (0,
|
|
3225
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
3145
3226
|
"div",
|
|
3146
3227
|
{
|
|
3147
3228
|
style: {
|
|
@@ -3153,8 +3234,8 @@ function MessageListScreen({ nav }) {
|
|
|
3153
3234
|
flexShrink: 0
|
|
3154
3235
|
},
|
|
3155
3236
|
children: [
|
|
3156
|
-
/* @__PURE__ */ (0,
|
|
3157
|
-
thread.unreadCount > 0 && /* @__PURE__ */ (0,
|
|
3237
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { style: { fontSize: 11, color: colors.textDim }, children: formatRelativeTime(thread.lastMessageAt) }),
|
|
3238
|
+
thread.unreadCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
3158
3239
|
"span",
|
|
3159
3240
|
{
|
|
3160
3241
|
style: {
|
|
@@ -3181,7 +3262,7 @@ function MessageListScreen({ nav }) {
|
|
|
3181
3262
|
},
|
|
3182
3263
|
thread.id
|
|
3183
3264
|
)) }),
|
|
3184
|
-
/* @__PURE__ */ (0,
|
|
3265
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
3185
3266
|
"div",
|
|
3186
3267
|
{
|
|
3187
3268
|
style: {
|
|
@@ -3193,7 +3274,7 @@ function MessageListScreen({ nav }) {
|
|
|
3193
3274
|
paddingRight: 4
|
|
3194
3275
|
},
|
|
3195
3276
|
children: [
|
|
3196
|
-
/* @__PURE__ */ (0,
|
|
3277
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("span", { style: { fontSize: 12, color: colors.textMuted }, children: [
|
|
3197
3278
|
threads.length,
|
|
3198
3279
|
" thread",
|
|
3199
3280
|
threads.length !== 1 ? "s" : "",
|
|
@@ -3202,7 +3283,7 @@ function MessageListScreen({ nav }) {
|
|
|
3202
3283
|
unreadCount,
|
|
3203
3284
|
" unread"
|
|
3204
3285
|
] }),
|
|
3205
|
-
/* @__PURE__ */ (0,
|
|
3286
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
3206
3287
|
"button",
|
|
3207
3288
|
{
|
|
3208
3289
|
style: {
|
|
@@ -3225,7 +3306,7 @@ function MessageListScreen({ nav }) {
|
|
|
3225
3306
|
|
|
3226
3307
|
// src/widget/screens/ThreadDetailScreen.tsx
|
|
3227
3308
|
var import_react10 = require("react");
|
|
3228
|
-
var
|
|
3309
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
3229
3310
|
var inputStyle = {
|
|
3230
3311
|
backgroundColor: "#27272a",
|
|
3231
3312
|
border: "1px solid #3f3f46",
|
|
@@ -3284,8 +3365,8 @@ function ThreadDetailScreen({
|
|
|
3284
3365
|
handleSend();
|
|
3285
3366
|
}
|
|
3286
3367
|
};
|
|
3287
|
-
return /* @__PURE__ */ (0,
|
|
3288
|
-
/* @__PURE__ */ (0,
|
|
3368
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { style: { display: "flex", flexDirection: "column", flex: 1 }, children: [
|
|
3369
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
3289
3370
|
"div",
|
|
3290
3371
|
{
|
|
3291
3372
|
style: {
|
|
@@ -3297,8 +3378,8 @@ function ThreadDetailScreen({
|
|
|
3297
3378
|
borderBottom: `1px solid ${colors.border}`
|
|
3298
3379
|
},
|
|
3299
3380
|
children: [
|
|
3300
|
-
/* @__PURE__ */ (0,
|
|
3301
|
-
/* @__PURE__ */ (0,
|
|
3381
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { style: { fontSize: 20 }, children: getThreadTypeIcon(thread.threadType) }),
|
|
3382
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
3302
3383
|
"span",
|
|
3303
3384
|
{
|
|
3304
3385
|
style: {
|
|
@@ -3318,7 +3399,7 @@ function ThreadDetailScreen({
|
|
|
3318
3399
|
]
|
|
3319
3400
|
}
|
|
3320
3401
|
),
|
|
3321
|
-
loading ? /* @__PURE__ */ (0,
|
|
3402
|
+
loading ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
3322
3403
|
"div",
|
|
3323
3404
|
{
|
|
3324
3405
|
style: {
|
|
@@ -3326,11 +3407,11 @@ function ThreadDetailScreen({
|
|
|
3326
3407
|
paddingBottom: 40,
|
|
3327
3408
|
textAlign: "center"
|
|
3328
3409
|
},
|
|
3329
|
-
children: /* @__PURE__ */ (0,
|
|
3410
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { style: { fontSize: 14, color: colors.textMuted }, children: "Loading messages..." })
|
|
3330
3411
|
}
|
|
3331
|
-
) : /* @__PURE__ */ (0,
|
|
3412
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { style: { paddingBottom: 8, marginBottom: 8 }, children: messages.map((msg) => {
|
|
3332
3413
|
const isTester = msg.senderType === "tester";
|
|
3333
|
-
return /* @__PURE__ */ (0,
|
|
3414
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
3334
3415
|
"div",
|
|
3335
3416
|
{
|
|
3336
3417
|
style: {
|
|
@@ -3346,7 +3427,7 @@ function ThreadDetailScreen({
|
|
|
3346
3427
|
borderBottomRightRadius: isTester ? 4 : 16
|
|
3347
3428
|
},
|
|
3348
3429
|
children: [
|
|
3349
|
-
/* @__PURE__ */ (0,
|
|
3430
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
3350
3431
|
"span",
|
|
3351
3432
|
{
|
|
3352
3433
|
style: {
|
|
@@ -3359,7 +3440,7 @@ function ThreadDetailScreen({
|
|
|
3359
3440
|
children: isTester ? "You" : msg.senderName
|
|
3360
3441
|
}
|
|
3361
3442
|
),
|
|
3362
|
-
/* @__PURE__ */ (0,
|
|
3443
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
3363
3444
|
"span",
|
|
3364
3445
|
{
|
|
3365
3446
|
style: {
|
|
@@ -3373,7 +3454,7 @@ function ThreadDetailScreen({
|
|
|
3373
3454
|
children: msg.content
|
|
3374
3455
|
}
|
|
3375
3456
|
),
|
|
3376
|
-
msg.attachments && msg.attachments.length > 0 && /* @__PURE__ */ (0,
|
|
3457
|
+
msg.attachments && msg.attachments.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { style: { marginTop: 8, display: "flex", flexDirection: "column", gap: 6 }, children: msg.attachments.filter((a) => a.type === "image" && typeof a.url === "string" && /^https?:\/\//i.test(a.url)).map((att, idx) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
3377
3458
|
"img",
|
|
3378
3459
|
{
|
|
3379
3460
|
src: att.url,
|
|
@@ -3382,7 +3463,7 @@ function ThreadDetailScreen({
|
|
|
3382
3463
|
},
|
|
3383
3464
|
idx
|
|
3384
3465
|
)) }),
|
|
3385
|
-
/* @__PURE__ */ (0,
|
|
3466
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
3386
3467
|
"span",
|
|
3387
3468
|
{
|
|
3388
3469
|
style: {
|
|
@@ -3400,7 +3481,7 @@ function ThreadDetailScreen({
|
|
|
3400
3481
|
msg.id
|
|
3401
3482
|
);
|
|
3402
3483
|
}) }),
|
|
3403
|
-
sendError && /* @__PURE__ */ (0,
|
|
3484
|
+
sendError && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
3404
3485
|
"div",
|
|
3405
3486
|
{
|
|
3406
3487
|
style: {
|
|
@@ -3412,7 +3493,7 @@ function ThreadDetailScreen({
|
|
|
3412
3493
|
borderRadius: 8,
|
|
3413
3494
|
marginBottom: 8
|
|
3414
3495
|
},
|
|
3415
|
-
children: /* @__PURE__ */ (0,
|
|
3496
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
3416
3497
|
"span",
|
|
3417
3498
|
{
|
|
3418
3499
|
style: {
|
|
@@ -3426,8 +3507,8 @@ function ThreadDetailScreen({
|
|
|
3426
3507
|
)
|
|
3427
3508
|
}
|
|
3428
3509
|
),
|
|
3429
|
-
replyImages.images.length > 0 && /* @__PURE__ */ (0,
|
|
3430
|
-
/* @__PURE__ */ (0,
|
|
3510
|
+
replyImages.images.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { style: { paddingTop: 8 }, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ImagePreviewStrip, { images: replyImages.images, onRemove: replyImages.removeImage }) }),
|
|
3511
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
3431
3512
|
"div",
|
|
3432
3513
|
{
|
|
3433
3514
|
style: {
|
|
@@ -3438,7 +3519,7 @@ function ThreadDetailScreen({
|
|
|
3438
3519
|
gap: 8
|
|
3439
3520
|
},
|
|
3440
3521
|
children: [
|
|
3441
|
-
/* @__PURE__ */ (0,
|
|
3522
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
3442
3523
|
"button",
|
|
3443
3524
|
{
|
|
3444
3525
|
type: "button",
|
|
@@ -3457,7 +3538,7 @@ function ThreadDetailScreen({
|
|
|
3457
3538
|
children: "\u{1F4CE}"
|
|
3458
3539
|
}
|
|
3459
3540
|
),
|
|
3460
|
-
/* @__PURE__ */ (0,
|
|
3541
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
3461
3542
|
"input",
|
|
3462
3543
|
{
|
|
3463
3544
|
type: "text",
|
|
@@ -3473,7 +3554,7 @@ function ThreadDetailScreen({
|
|
|
3473
3554
|
}
|
|
3474
3555
|
}
|
|
3475
3556
|
),
|
|
3476
|
-
/* @__PURE__ */ (0,
|
|
3557
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
3477
3558
|
"button",
|
|
3478
3559
|
{
|
|
3479
3560
|
style: {
|
|
@@ -3501,7 +3582,7 @@ function ThreadDetailScreen({
|
|
|
3501
3582
|
|
|
3502
3583
|
// src/widget/screens/ComposeMessageScreen.tsx
|
|
3503
3584
|
var import_react11 = require("react");
|
|
3504
|
-
var
|
|
3585
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
3505
3586
|
var inputStyle2 = {
|
|
3506
3587
|
backgroundColor: "#27272a",
|
|
3507
3588
|
border: "1px solid #3f3f46",
|
|
@@ -3532,9 +3613,9 @@ function ComposeMessageScreen({ nav }) {
|
|
|
3532
3613
|
nav.pop();
|
|
3533
3614
|
}
|
|
3534
3615
|
};
|
|
3535
|
-
return /* @__PURE__ */ (0,
|
|
3536
|
-
/* @__PURE__ */ (0,
|
|
3537
|
-
/* @__PURE__ */ (0,
|
|
3616
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { children: [
|
|
3617
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { style: { marginBottom: 20 }, children: [
|
|
3618
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
3538
3619
|
"div",
|
|
3539
3620
|
{
|
|
3540
3621
|
style: {
|
|
@@ -3546,9 +3627,9 @@ function ComposeMessageScreen({ nav }) {
|
|
|
3546
3627
|
children: "New Message"
|
|
3547
3628
|
}
|
|
3548
3629
|
),
|
|
3549
|
-
/* @__PURE__ */ (0,
|
|
3630
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { style: { fontSize: 14, color: colors.textMuted }, children: "Send a message to the QA team" })
|
|
3550
3631
|
] }),
|
|
3551
|
-
/* @__PURE__ */ (0,
|
|
3632
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
|
3552
3633
|
"div",
|
|
3553
3634
|
{
|
|
3554
3635
|
style: {
|
|
@@ -3558,7 +3639,7 @@ function ComposeMessageScreen({ nav }) {
|
|
|
3558
3639
|
border: `1px solid ${colors.border}`
|
|
3559
3640
|
},
|
|
3560
3641
|
children: [
|
|
3561
|
-
/* @__PURE__ */ (0,
|
|
3642
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
3562
3643
|
"label",
|
|
3563
3644
|
{
|
|
3564
3645
|
style: {
|
|
@@ -3571,7 +3652,7 @@ function ComposeMessageScreen({ nav }) {
|
|
|
3571
3652
|
children: "Subject"
|
|
3572
3653
|
}
|
|
3573
3654
|
),
|
|
3574
|
-
/* @__PURE__ */ (0,
|
|
3655
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
3575
3656
|
"input",
|
|
3576
3657
|
{
|
|
3577
3658
|
type: "text",
|
|
@@ -3586,7 +3667,7 @@ function ComposeMessageScreen({ nav }) {
|
|
|
3586
3667
|
}
|
|
3587
3668
|
}
|
|
3588
3669
|
),
|
|
3589
|
-
/* @__PURE__ */ (0,
|
|
3670
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
3590
3671
|
"label",
|
|
3591
3672
|
{
|
|
3592
3673
|
style: {
|
|
@@ -3600,7 +3681,7 @@ function ComposeMessageScreen({ nav }) {
|
|
|
3600
3681
|
children: "Message"
|
|
3601
3682
|
}
|
|
3602
3683
|
),
|
|
3603
|
-
/* @__PURE__ */ (0,
|
|
3684
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
3604
3685
|
"textarea",
|
|
3605
3686
|
{
|
|
3606
3687
|
value: message,
|
|
@@ -3619,7 +3700,7 @@ function ComposeMessageScreen({ nav }) {
|
|
|
3619
3700
|
}
|
|
3620
3701
|
}
|
|
3621
3702
|
),
|
|
3622
|
-
/* @__PURE__ */ (0,
|
|
3703
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
3623
3704
|
ImagePickerButtons,
|
|
3624
3705
|
{
|
|
3625
3706
|
images: images.images,
|
|
@@ -3630,7 +3711,7 @@ function ComposeMessageScreen({ nav }) {
|
|
|
3630
3711
|
label: "Attachments (optional)"
|
|
3631
3712
|
}
|
|
3632
3713
|
),
|
|
3633
|
-
/* @__PURE__ */ (0,
|
|
3714
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
3634
3715
|
"button",
|
|
3635
3716
|
{
|
|
3636
3717
|
style: {
|
|
@@ -3659,7 +3740,7 @@ function ComposeMessageScreen({ nav }) {
|
|
|
3659
3740
|
|
|
3660
3741
|
// src/widget/screens/ProfileScreen.tsx
|
|
3661
3742
|
var import_react12 = require("react");
|
|
3662
|
-
var
|
|
3743
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
3663
3744
|
function ProfileScreen({ nav }) {
|
|
3664
3745
|
const { testerInfo, assignments, updateTesterProfile, refreshTesterInfo } = useBugBear();
|
|
3665
3746
|
const [editing, setEditing] = (0, import_react12.useState)(false);
|
|
@@ -3705,22 +3786,22 @@ function ProfileScreen({ nav }) {
|
|
|
3705
3786
|
}
|
|
3706
3787
|
};
|
|
3707
3788
|
if (saved) {
|
|
3708
|
-
return /* @__PURE__ */ (0,
|
|
3709
|
-
/* @__PURE__ */ (0,
|
|
3710
|
-
/* @__PURE__ */ (0,
|
|
3789
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { style: styles4.emptyState, children: [
|
|
3790
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { style: styles4.emptyEmoji, children: "\u2705" }),
|
|
3791
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { style: styles4.emptyTitle, children: "Profile saved!" })
|
|
3711
3792
|
] });
|
|
3712
3793
|
}
|
|
3713
3794
|
if (!testerInfo) {
|
|
3714
|
-
return /* @__PURE__ */ (0,
|
|
3715
|
-
/* @__PURE__ */ (0,
|
|
3716
|
-
/* @__PURE__ */ (0,
|
|
3795
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { style: styles4.emptyState, children: [
|
|
3796
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { style: styles4.emptyEmoji, children: "\u{1F464}" }),
|
|
3797
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { style: styles4.emptyTitle, children: "No profile found" })
|
|
3717
3798
|
] });
|
|
3718
3799
|
}
|
|
3719
3800
|
if (editing) {
|
|
3720
|
-
return /* @__PURE__ */ (0,
|
|
3721
|
-
/* @__PURE__ */ (0,
|
|
3722
|
-
/* @__PURE__ */ (0,
|
|
3723
|
-
/* @__PURE__ */ (0,
|
|
3801
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { children: [
|
|
3802
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { style: styles4.editHeader, children: [
|
|
3803
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { style: styles4.editTitle, children: "Edit Profile" }),
|
|
3804
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
3724
3805
|
"button",
|
|
3725
3806
|
{
|
|
3726
3807
|
style: styles4.cancelButton,
|
|
@@ -3732,9 +3813,9 @@ function ProfileScreen({ nav }) {
|
|
|
3732
3813
|
}
|
|
3733
3814
|
)
|
|
3734
3815
|
] }),
|
|
3735
|
-
/* @__PURE__ */ (0,
|
|
3736
|
-
/* @__PURE__ */ (0,
|
|
3737
|
-
/* @__PURE__ */ (0,
|
|
3816
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { style: styles4.field, children: [
|
|
3817
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("label", { style: styles4.label, children: "Name" }),
|
|
3818
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
3738
3819
|
"input",
|
|
3739
3820
|
{
|
|
3740
3821
|
style: styles4.input,
|
|
@@ -3744,15 +3825,15 @@ function ProfileScreen({ nav }) {
|
|
|
3744
3825
|
}
|
|
3745
3826
|
)
|
|
3746
3827
|
] }),
|
|
3747
|
-
/* @__PURE__ */ (0,
|
|
3748
|
-
/* @__PURE__ */ (0,
|
|
3749
|
-
/* @__PURE__ */ (0,
|
|
3828
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { style: styles4.field, children: [
|
|
3829
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("label", { style: styles4.label, children: "Primary Email" }),
|
|
3830
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { style: styles4.emailFixed, children: testerInfo.email })
|
|
3750
3831
|
] }),
|
|
3751
|
-
/* @__PURE__ */ (0,
|
|
3752
|
-
/* @__PURE__ */ (0,
|
|
3753
|
-
additionalEmails.map((email) => /* @__PURE__ */ (0,
|
|
3754
|
-
/* @__PURE__ */ (0,
|
|
3755
|
-
/* @__PURE__ */ (0,
|
|
3832
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { style: styles4.field, children: [
|
|
3833
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("label", { style: styles4.label, children: "Additional Emails" }),
|
|
3834
|
+
additionalEmails.map((email) => /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { style: styles4.emailRow, children: [
|
|
3835
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { style: styles4.emailText, children: email }),
|
|
3836
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
3756
3837
|
"button",
|
|
3757
3838
|
{
|
|
3758
3839
|
style: styles4.removeEmailButton,
|
|
@@ -3761,8 +3842,8 @@ function ProfileScreen({ nav }) {
|
|
|
3761
3842
|
}
|
|
3762
3843
|
)
|
|
3763
3844
|
] }, email)),
|
|
3764
|
-
/* @__PURE__ */ (0,
|
|
3765
|
-
/* @__PURE__ */ (0,
|
|
3845
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { style: styles4.addEmailRow, children: [
|
|
3846
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
3766
3847
|
"input",
|
|
3767
3848
|
{
|
|
3768
3849
|
style: { ...styles4.input, flex: 1, marginRight: 8 },
|
|
@@ -3775,18 +3856,18 @@ function ProfileScreen({ nav }) {
|
|
|
3775
3856
|
}
|
|
3776
3857
|
}
|
|
3777
3858
|
),
|
|
3778
|
-
/* @__PURE__ */ (0,
|
|
3859
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("button", { style: styles4.addButton, onClick: handleAddEmail, children: "Add" })
|
|
3779
3860
|
] })
|
|
3780
3861
|
] }),
|
|
3781
|
-
/* @__PURE__ */ (0,
|
|
3782
|
-
/* @__PURE__ */ (0,
|
|
3783
|
-
/* @__PURE__ */ (0,
|
|
3862
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { style: styles4.field, children: [
|
|
3863
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("label", { style: styles4.label, children: "Testing Platforms" }),
|
|
3864
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { style: styles4.platformRow, children: [
|
|
3784
3865
|
{ key: "ios", label: "\u{1F4F1} iOS" },
|
|
3785
3866
|
{ key: "android", label: "\u{1F916} Android" },
|
|
3786
3867
|
{ key: "web", label: "\u{1F310} Web" }
|
|
3787
3868
|
].map(({ key, label }) => {
|
|
3788
3869
|
const isActive = platforms.includes(key);
|
|
3789
|
-
return /* @__PURE__ */ (0,
|
|
3870
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
3790
3871
|
"button",
|
|
3791
3872
|
{
|
|
3792
3873
|
style: {
|
|
@@ -3796,13 +3877,13 @@ function ProfileScreen({ nav }) {
|
|
|
3796
3877
|
onClick: () => setPlatforms(
|
|
3797
3878
|
(prev) => prev.includes(key) ? prev.filter((p) => p !== key) : [...prev, key]
|
|
3798
3879
|
),
|
|
3799
|
-
children: /* @__PURE__ */ (0,
|
|
3880
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { style: isActive ? styles4.platformTextActive : styles4.platformText, children: label })
|
|
3800
3881
|
},
|
|
3801
3882
|
key
|
|
3802
3883
|
);
|
|
3803
3884
|
}) })
|
|
3804
3885
|
] }),
|
|
3805
|
-
/* @__PURE__ */ (0,
|
|
3886
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
3806
3887
|
"button",
|
|
3807
3888
|
{
|
|
3808
3889
|
style: { ...styles4.primaryButton, marginTop: 20 },
|
|
@@ -3813,45 +3894,45 @@ function ProfileScreen({ nav }) {
|
|
|
3813
3894
|
)
|
|
3814
3895
|
] });
|
|
3815
3896
|
}
|
|
3816
|
-
return /* @__PURE__ */ (0,
|
|
3817
|
-
/* @__PURE__ */ (0,
|
|
3818
|
-
/* @__PURE__ */ (0,
|
|
3819
|
-
/* @__PURE__ */ (0,
|
|
3820
|
-
/* @__PURE__ */ (0,
|
|
3897
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { children: [
|
|
3898
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { style: styles4.profileCard, children: [
|
|
3899
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { style: styles4.avatar, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { style: styles4.avatarText, children: testerInfo.name.charAt(0).toUpperCase() }) }),
|
|
3900
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { style: styles4.profileName, children: testerInfo.name }),
|
|
3901
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { style: styles4.profileEmail, children: testerInfo.email })
|
|
3821
3902
|
] }),
|
|
3822
|
-
/* @__PURE__ */ (0,
|
|
3823
|
-
/* @__PURE__ */ (0,
|
|
3824
|
-
/* @__PURE__ */ (0,
|
|
3825
|
-
/* @__PURE__ */ (0,
|
|
3903
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { style: styles4.statsRow, children: [
|
|
3904
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { style: styles4.statItem, children: [
|
|
3905
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { style: styles4.statNumber, children: completedCount }),
|
|
3906
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { style: styles4.statLabel, children: "Completed" })
|
|
3826
3907
|
] }),
|
|
3827
|
-
/* @__PURE__ */ (0,
|
|
3828
|
-
/* @__PURE__ */ (0,
|
|
3829
|
-
/* @__PURE__ */ (0,
|
|
3830
|
-
/* @__PURE__ */ (0,
|
|
3908
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { style: styles4.statDivider }),
|
|
3909
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { style: styles4.statItem, children: [
|
|
3910
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { style: styles4.statNumber, children: assignments.length }),
|
|
3911
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { style: styles4.statLabel, children: "Total Assigned" })
|
|
3831
3912
|
] })
|
|
3832
3913
|
] }),
|
|
3833
|
-
/* @__PURE__ */ (0,
|
|
3914
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
3834
3915
|
"button",
|
|
3835
3916
|
{
|
|
3836
3917
|
style: styles4.detailsToggle,
|
|
3837
3918
|
onClick: () => setShowDetails(!showDetails),
|
|
3838
|
-
children: /* @__PURE__ */ (0,
|
|
3919
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("span", { style: styles4.detailsToggleText, children: [
|
|
3839
3920
|
showDetails ? "\u25BC" : "\u25B6",
|
|
3840
3921
|
" Details"
|
|
3841
3922
|
] })
|
|
3842
3923
|
}
|
|
3843
3924
|
),
|
|
3844
|
-
showDetails && /* @__PURE__ */ (0,
|
|
3845
|
-
additionalEmails.length > 0 && /* @__PURE__ */ (0,
|
|
3846
|
-
/* @__PURE__ */ (0,
|
|
3847
|
-
additionalEmails.map((e) => /* @__PURE__ */ (0,
|
|
3925
|
+
showDetails && /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { style: styles4.detailsSection, children: [
|
|
3926
|
+
additionalEmails.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { style: styles4.detailBlock, children: [
|
|
3927
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { style: styles4.detailLabel, children: "Additional Emails" }),
|
|
3928
|
+
additionalEmails.map((e) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { style: styles4.detailValue, children: e }, e))
|
|
3848
3929
|
] }),
|
|
3849
|
-
platforms.length > 0 && /* @__PURE__ */ (0,
|
|
3850
|
-
/* @__PURE__ */ (0,
|
|
3851
|
-
/* @__PURE__ */ (0,
|
|
3930
|
+
platforms.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { style: styles4.detailBlock, children: [
|
|
3931
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { style: styles4.detailLabel, children: "Platforms" }),
|
|
3932
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { style: styles4.platformTags, children: platforms.map((p) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { style: styles4.platformTag, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { style: styles4.platformTagText, children: p === "ios" ? "\u{1F4F1} iOS" : p === "android" ? "\u{1F916} Android" : "\u{1F310} Web" }) }, p)) })
|
|
3852
3933
|
] })
|
|
3853
3934
|
] }),
|
|
3854
|
-
/* @__PURE__ */ (0,
|
|
3935
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
3855
3936
|
"button",
|
|
3856
3937
|
{
|
|
3857
3938
|
style: { ...styles4.primaryButton, marginTop: 20 },
|
|
@@ -4135,7 +4216,7 @@ var styles4 = {
|
|
|
4135
4216
|
|
|
4136
4217
|
// src/widget/screens/IssueListScreen.tsx
|
|
4137
4218
|
var import_react13 = require("react");
|
|
4138
|
-
var
|
|
4219
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
4139
4220
|
var CATEGORY_CONFIG = {
|
|
4140
4221
|
open: { label: "Open Issues", accent: "#f97316", emptyIcon: "\u2705", emptyText: "No open issues" },
|
|
4141
4222
|
done: { label: "Done", accent: "#22c55e", emptyIcon: "\u{1F389}", emptyText: "No completed issues yet" },
|
|
@@ -4168,15 +4249,15 @@ function IssueListScreen({ nav, category }) {
|
|
|
4168
4249
|
};
|
|
4169
4250
|
}, [client, category]);
|
|
4170
4251
|
if (loading) {
|
|
4171
|
-
return /* @__PURE__ */ (0,
|
|
4252
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { style: { padding: "40px 0", textAlign: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { style: { color: colors.textMuted, fontSize: 14 }, children: "Loading..." }) });
|
|
4172
4253
|
}
|
|
4173
4254
|
if (issues.length === 0) {
|
|
4174
|
-
return /* @__PURE__ */ (0,
|
|
4175
|
-
/* @__PURE__ */ (0,
|
|
4176
|
-
/* @__PURE__ */ (0,
|
|
4255
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: { padding: "40px 0", textAlign: "center" }, children: [
|
|
4256
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { style: { fontSize: 36, marginBottom: 8 }, children: config.emptyIcon }),
|
|
4257
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { style: { color: colors.textMuted, fontSize: 14 }, children: config.emptyText })
|
|
4177
4258
|
] });
|
|
4178
4259
|
}
|
|
4179
|
-
return /* @__PURE__ */ (0,
|
|
4260
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { children: issues.map((issue) => /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
4180
4261
|
"div",
|
|
4181
4262
|
{
|
|
4182
4263
|
role: "button",
|
|
@@ -4195,8 +4276,8 @@ function IssueListScreen({ nav, category }) {
|
|
|
4195
4276
|
userSelect: "none"
|
|
4196
4277
|
},
|
|
4197
4278
|
children: [
|
|
4198
|
-
/* @__PURE__ */ (0,
|
|
4199
|
-
issue.severity && /* @__PURE__ */ (0,
|
|
4279
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: { display: "flex", alignItems: "flex-start", gap: 8 }, children: [
|
|
4280
|
+
issue.severity && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
4200
4281
|
"span",
|
|
4201
4282
|
{
|
|
4202
4283
|
style: {
|
|
@@ -4209,7 +4290,7 @@ function IssueListScreen({ nav, category }) {
|
|
|
4209
4290
|
}
|
|
4210
4291
|
}
|
|
4211
4292
|
),
|
|
4212
|
-
/* @__PURE__ */ (0,
|
|
4293
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { style: {
|
|
4213
4294
|
fontSize: 13,
|
|
4214
4295
|
fontWeight: 600,
|
|
4215
4296
|
color: colors.textPrimary,
|
|
@@ -4219,11 +4300,11 @@ function IssueListScreen({ nav, category }) {
|
|
|
4219
4300
|
whiteSpace: "nowrap"
|
|
4220
4301
|
}, children: issue.title })
|
|
4221
4302
|
] }),
|
|
4222
|
-
/* @__PURE__ */ (0,
|
|
4223
|
-
issue.route && /* @__PURE__ */ (0,
|
|
4224
|
-
/* @__PURE__ */ (0,
|
|
4303
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: { display: "flex", justifyContent: "space-between", marginTop: 6 }, children: [
|
|
4304
|
+
issue.route && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { style: { fontSize: 11, color: colors.textDim, maxWidth: "60%", overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }, children: issue.route }),
|
|
4305
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { style: { fontSize: 11, color: colors.textDim, marginLeft: "auto" }, children: formatRelativeTime(issue.updatedAt) })
|
|
4225
4306
|
] }),
|
|
4226
|
-
category === "done" && issue.verifiedByName && /* @__PURE__ */ (0,
|
|
4307
|
+
category === "done" && issue.verifiedByName && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: {
|
|
4227
4308
|
display: "inline-flex",
|
|
4228
4309
|
alignItems: "center",
|
|
4229
4310
|
gap: 4,
|
|
@@ -4239,7 +4320,7 @@ function IssueListScreen({ nav, category }) {
|
|
|
4239
4320
|
"\u2714 Verified by ",
|
|
4240
4321
|
issue.verifiedByName
|
|
4241
4322
|
] }),
|
|
4242
|
-
category === "reopened" && issue.originalBugTitle && /* @__PURE__ */ (0,
|
|
4323
|
+
category === "reopened" && issue.originalBugTitle && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: {
|
|
4243
4324
|
display: "inline-flex",
|
|
4244
4325
|
alignItems: "center",
|
|
4245
4326
|
gap: 4,
|
|
@@ -4266,7 +4347,7 @@ function IssueListScreen({ nav, category }) {
|
|
|
4266
4347
|
}
|
|
4267
4348
|
|
|
4268
4349
|
// src/widget/screens/IssueDetailScreen.tsx
|
|
4269
|
-
var
|
|
4350
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
4270
4351
|
var STATUS_LABELS = {
|
|
4271
4352
|
new: { label: "New", bg: "#1e3a5f", color: "#60a5fa" },
|
|
4272
4353
|
triaging: { label: "Triaging", bg: "#1e3a5f", color: "#60a5fa" },
|
|
@@ -4290,9 +4371,9 @@ var SEVERITY_CONFIG = {
|
|
|
4290
4371
|
function IssueDetailScreen({ nav, issue }) {
|
|
4291
4372
|
const statusConfig = STATUS_LABELS[issue.status] || { label: issue.status, bg: "#27272a", color: "#a1a1aa" };
|
|
4292
4373
|
const severityConfig = issue.severity ? SEVERITY_CONFIG[issue.severity] : null;
|
|
4293
|
-
return /* @__PURE__ */ (0,
|
|
4294
|
-
/* @__PURE__ */ (0,
|
|
4295
|
-
/* @__PURE__ */ (0,
|
|
4374
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { children: [
|
|
4375
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { style: { display: "flex", gap: 8, flexWrap: "wrap", marginBottom: 12 }, children: [
|
|
4376
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { style: {
|
|
4296
4377
|
backgroundColor: statusConfig.bg,
|
|
4297
4378
|
color: statusConfig.color,
|
|
4298
4379
|
fontSize: 11,
|
|
@@ -4300,7 +4381,7 @@ function IssueDetailScreen({ nav, issue }) {
|
|
|
4300
4381
|
padding: "3px 10px",
|
|
4301
4382
|
borderRadius: 6
|
|
4302
4383
|
}, children: statusConfig.label }),
|
|
4303
|
-
severityConfig && /* @__PURE__ */ (0,
|
|
4384
|
+
severityConfig && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { style: {
|
|
4304
4385
|
backgroundColor: severityConfig.bg,
|
|
4305
4386
|
color: severityConfig.color,
|
|
4306
4387
|
fontSize: 11,
|
|
@@ -4309,9 +4390,9 @@ function IssueDetailScreen({ nav, issue }) {
|
|
|
4309
4390
|
borderRadius: 6
|
|
4310
4391
|
}, children: severityConfig.label })
|
|
4311
4392
|
] }),
|
|
4312
|
-
/* @__PURE__ */ (0,
|
|
4313
|
-
issue.route && /* @__PURE__ */ (0,
|
|
4314
|
-
issue.description && /* @__PURE__ */ (0,
|
|
4393
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("h3", { style: { fontSize: 16, fontWeight: 700, color: colors.textPrimary, margin: "0 0 8px 0", lineHeight: 1.3 }, children: issue.title }),
|
|
4394
|
+
issue.route && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { style: { fontSize: 12, color: colors.textDim, marginBottom: 12 }, children: issue.route }),
|
|
4395
|
+
issue.description && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { style: {
|
|
4315
4396
|
backgroundColor: colors.card,
|
|
4316
4397
|
border: `1px solid ${colors.border}`,
|
|
4317
4398
|
borderRadius: 8,
|
|
@@ -4323,56 +4404,56 @@ function IssueDetailScreen({ nav, issue }) {
|
|
|
4323
4404
|
whiteSpace: "pre-wrap",
|
|
4324
4405
|
wordBreak: "break-word"
|
|
4325
4406
|
}, children: issue.description }),
|
|
4326
|
-
issue.verifiedByName && /* @__PURE__ */ (0,
|
|
4407
|
+
issue.verifiedByName && /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { style: {
|
|
4327
4408
|
backgroundColor: "#14532d",
|
|
4328
4409
|
border: "1px solid #166534",
|
|
4329
4410
|
borderRadius: 8,
|
|
4330
4411
|
padding: 12,
|
|
4331
4412
|
marginBottom: 12
|
|
4332
4413
|
}, children: [
|
|
4333
|
-
/* @__PURE__ */ (0,
|
|
4334
|
-
/* @__PURE__ */ (0,
|
|
4335
|
-
/* @__PURE__ */ (0,
|
|
4414
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: 8, marginBottom: 4 }, children: [
|
|
4415
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { style: { fontSize: 16 }, children: "\u2705" }),
|
|
4416
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { style: { fontSize: 13, fontWeight: 600, color: "#4ade80" }, children: "Retesting Proof" })
|
|
4336
4417
|
] }),
|
|
4337
|
-
/* @__PURE__ */ (0,
|
|
4418
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { style: { fontSize: 12, color: "#86efac" }, children: [
|
|
4338
4419
|
"Verified by ",
|
|
4339
|
-
/* @__PURE__ */ (0,
|
|
4340
|
-
issue.verifiedAt && /* @__PURE__ */ (0,
|
|
4420
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("strong", { children: issue.verifiedByName }),
|
|
4421
|
+
issue.verifiedAt && /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("span", { children: [
|
|
4341
4422
|
" on ",
|
|
4342
4423
|
new Date(issue.verifiedAt).toLocaleDateString(void 0, { month: "short", day: "numeric", year: "numeric" })
|
|
4343
4424
|
] })
|
|
4344
4425
|
] })
|
|
4345
4426
|
] }),
|
|
4346
|
-
issue.originalBugTitle && /* @__PURE__ */ (0,
|
|
4427
|
+
issue.originalBugTitle && /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { style: {
|
|
4347
4428
|
backgroundColor: "#422006",
|
|
4348
4429
|
border: "1px solid #854d0e",
|
|
4349
4430
|
borderRadius: 8,
|
|
4350
4431
|
padding: 12,
|
|
4351
4432
|
marginBottom: 12
|
|
4352
4433
|
}, children: [
|
|
4353
|
-
/* @__PURE__ */ (0,
|
|
4354
|
-
/* @__PURE__ */ (0,
|
|
4355
|
-
/* @__PURE__ */ (0,
|
|
4434
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: 8, marginBottom: 4 }, children: [
|
|
4435
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { style: { fontSize: 16 }, children: "\u{1F504}" }),
|
|
4436
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { style: { fontSize: 13, fontWeight: 600, color: "#fbbf24" }, children: "Original Bug" })
|
|
4356
4437
|
] }),
|
|
4357
|
-
/* @__PURE__ */ (0,
|
|
4438
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { style: { fontSize: 12, color: "#fde68a" }, children: [
|
|
4358
4439
|
"Retest of: ",
|
|
4359
|
-
/* @__PURE__ */ (0,
|
|
4440
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("strong", { children: issue.originalBugTitle })
|
|
4360
4441
|
] })
|
|
4361
4442
|
] }),
|
|
4362
|
-
issue.screenshotUrls && issue.screenshotUrls.length > 0 && /* @__PURE__ */ (0,
|
|
4363
|
-
/* @__PURE__ */ (0,
|
|
4443
|
+
issue.screenshotUrls && issue.screenshotUrls.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { style: { marginBottom: 12 }, children: [
|
|
4444
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { style: { fontSize: 12, fontWeight: 600, color: colors.textMuted, marginBottom: 8 }, children: [
|
|
4364
4445
|
"Screenshots (",
|
|
4365
4446
|
issue.screenshotUrls.length,
|
|
4366
4447
|
")"
|
|
4367
4448
|
] }),
|
|
4368
|
-
/* @__PURE__ */ (0,
|
|
4449
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { style: { display: "flex", gap: 8, overflowX: "auto" }, children: issue.screenshotUrls.map((url, i) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
4369
4450
|
"a",
|
|
4370
4451
|
{
|
|
4371
4452
|
href: url,
|
|
4372
4453
|
target: "_blank",
|
|
4373
4454
|
rel: "noopener noreferrer",
|
|
4374
4455
|
style: { flexShrink: 0 },
|
|
4375
|
-
children: /* @__PURE__ */ (0,
|
|
4456
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
4376
4457
|
"img",
|
|
4377
4458
|
{
|
|
4378
4459
|
src: url,
|
|
@@ -4390,16 +4471,16 @@ function IssueDetailScreen({ nav, issue }) {
|
|
|
4390
4471
|
i
|
|
4391
4472
|
)) })
|
|
4392
4473
|
] }),
|
|
4393
|
-
/* @__PURE__ */ (0,
|
|
4474
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { style: {
|
|
4394
4475
|
borderTop: `1px solid ${colors.border}`,
|
|
4395
4476
|
paddingTop: 12,
|
|
4396
4477
|
marginTop: 4
|
|
4397
4478
|
}, children: [
|
|
4398
|
-
issue.reporterName && /* @__PURE__ */ (0,
|
|
4479
|
+
issue.reporterName && /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { style: { fontSize: 12, color: colors.textDim, marginBottom: 4 }, children: [
|
|
4399
4480
|
"Reported by ",
|
|
4400
4481
|
issue.reporterName
|
|
4401
4482
|
] }),
|
|
4402
|
-
/* @__PURE__ */ (0,
|
|
4483
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { style: { fontSize: 11, color: colors.textDim }, children: [
|
|
4403
4484
|
"Created ",
|
|
4404
4485
|
formatRelativeTime(issue.createdAt),
|
|
4405
4486
|
" \xB7 Updated ",
|
|
@@ -4413,9 +4494,9 @@ function IssueDetailScreen({ nav, issue }) {
|
|
|
4413
4494
|
var BUGBEAR_LOGO_BASE64 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAAAXNSR0IArs4c6QAAAJhlWElmTU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAIdpAAQAAAABAAAATgAAAAAAAABIAAAAAQAAAEgAAAABAASQBAACAAAAFAAAAISgAQADAAAAAQABAACgAgAEAAAAAQAAAGCgAwAEAAAAAQAAAGAAAAAAMjAyNjowMToyNCAxNjoyMTozOABbbVCuAAAACXBIWXMAAAsTAAALEwEAmpwYAAACo2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNi4wLjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpJcHRjNHhtcEV4dD0iaHR0cDovL2lwdGMub3JnL3N0ZC9JcHRjNHhtcEV4dC8yMDA4LTAyLTI5LyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIj4KICAgICAgICAgPElwdGM0eG1wRXh0OkRpZ2l0YWxTb3VyY2VUeXBlPmh0dHA6Ly9jdi5pcHRjLm9yZy9uZXdzY29kZXMvZGlnaXRhbHNvdXJjZXR5cGUvdHJhaW5lZEFsZ29yaXRobWljTWVkaWE8L0lwdGM0eG1wRXh0OkRpZ2l0YWxTb3VyY2VUeXBlPgogICAgICAgICA8SXB0YzR4bXBFeHQ6RGlnSW1hZ2VHVUlEPmZjNzJlN2Q2LTYyYTEtNDE1ZS04MjY5LWM2NjA4MjY0OWRiMDwvSXB0YzR4bXBFeHQ6RGlnSW1hZ2VHVUlEPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAyNi0wMS0yNFQxNjoyMTozODwveG1wOkNyZWF0ZURhdGU+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+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";
|
|
4414
4495
|
|
|
4415
4496
|
// src/BugBearPanel.tsx
|
|
4416
|
-
var
|
|
4497
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
4417
4498
|
function BugBearIcon({ size = 24 }) {
|
|
4418
|
-
return /* @__PURE__ */ (0,
|
|
4499
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
4419
4500
|
"img",
|
|
4420
4501
|
{
|
|
4421
4502
|
src: BUGBEAR_LOGO_BASE64,
|
|
@@ -4580,37 +4661,37 @@ function BugBearPanel({
|
|
|
4580
4661
|
const renderScreen = () => {
|
|
4581
4662
|
switch (currentScreen.name) {
|
|
4582
4663
|
case "HOME":
|
|
4583
|
-
return /* @__PURE__ */ (0,
|
|
4664
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(HomeScreen, { nav });
|
|
4584
4665
|
case "TEST_DETAIL":
|
|
4585
|
-
return /* @__PURE__ */ (0,
|
|
4666
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(TestDetailScreen, { testId: currentScreen.testId, nav });
|
|
4586
4667
|
case "TEST_LIST":
|
|
4587
|
-
return /* @__PURE__ */ (0,
|
|
4668
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(TestListScreen, { nav });
|
|
4588
4669
|
case "TEST_FEEDBACK":
|
|
4589
|
-
return /* @__PURE__ */ (0,
|
|
4670
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(TestFeedbackScreen, { status: currentScreen.status, assignmentId: currentScreen.assignmentId, nav });
|
|
4590
4671
|
case "REPORT":
|
|
4591
|
-
return /* @__PURE__ */ (0,
|
|
4672
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(ReportScreen, { nav, prefill: currentScreen.prefill });
|
|
4592
4673
|
case "REPORT_SUCCESS":
|
|
4593
|
-
return /* @__PURE__ */ (0,
|
|
4674
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(ReportSuccessScreen, { nav });
|
|
4594
4675
|
case "MESSAGE_LIST":
|
|
4595
|
-
return /* @__PURE__ */ (0,
|
|
4676
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(MessageListScreen, { nav });
|
|
4596
4677
|
case "THREAD_DETAIL":
|
|
4597
|
-
return /* @__PURE__ */ (0,
|
|
4678
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(ThreadDetailScreen, { thread: currentScreen.thread, nav });
|
|
4598
4679
|
case "COMPOSE_MESSAGE":
|
|
4599
|
-
return /* @__PURE__ */ (0,
|
|
4680
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(ComposeMessageScreen, { nav });
|
|
4600
4681
|
case "ISSUE_LIST":
|
|
4601
|
-
return /* @__PURE__ */ (0,
|
|
4682
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(IssueListScreen, { nav, category: currentScreen.category });
|
|
4602
4683
|
case "ISSUE_DETAIL":
|
|
4603
|
-
return /* @__PURE__ */ (0,
|
|
4684
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(IssueDetailScreen, { nav, issue: currentScreen.issue });
|
|
4604
4685
|
case "PROFILE":
|
|
4605
|
-
return /* @__PURE__ */ (0,
|
|
4686
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(ProfileScreen, { nav });
|
|
4606
4687
|
default:
|
|
4607
|
-
return /* @__PURE__ */ (0,
|
|
4688
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(HomeScreen, { nav });
|
|
4608
4689
|
}
|
|
4609
4690
|
};
|
|
4610
4691
|
if (typeof document === "undefined") return null;
|
|
4611
4692
|
const headerTitle = getHeaderTitle();
|
|
4612
4693
|
return (0, import_react_dom.createPortal)(
|
|
4613
|
-
/* @__PURE__ */ (0,
|
|
4694
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
4614
4695
|
"div",
|
|
4615
4696
|
{
|
|
4616
4697
|
ref: panelRef,
|
|
@@ -4629,7 +4710,7 @@ function BugBearPanel({
|
|
|
4629
4710
|
},
|
|
4630
4711
|
onMouseDown: handleMouseDown,
|
|
4631
4712
|
children: [
|
|
4632
|
-
collapsed && /* @__PURE__ */ (0,
|
|
4713
|
+
collapsed && /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
4633
4714
|
"button",
|
|
4634
4715
|
{
|
|
4635
4716
|
onClick: () => setCollapsed(false),
|
|
@@ -4651,9 +4732,9 @@ function BugBearPanel({
|
|
|
4651
4732
|
fontWeight: 500
|
|
4652
4733
|
},
|
|
4653
4734
|
children: [
|
|
4654
|
-
/* @__PURE__ */ (0,
|
|
4655
|
-
/* @__PURE__ */ (0,
|
|
4656
|
-
badgeCount > 0 && /* @__PURE__ */ (0,
|
|
4735
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(BugBearIcon, { size: 24 }),
|
|
4736
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { children: "BugBear" }),
|
|
4737
|
+
badgeCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { style: {
|
|
4657
4738
|
backgroundColor: "#fff",
|
|
4658
4739
|
color: colors.blue,
|
|
4659
4740
|
fontSize: "0.75rem",
|
|
@@ -4664,7 +4745,7 @@ function BugBearPanel({
|
|
|
4664
4745
|
]
|
|
4665
4746
|
}
|
|
4666
4747
|
),
|
|
4667
|
-
!collapsed && /* @__PURE__ */ (0,
|
|
4748
|
+
!collapsed && /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { style: {
|
|
4668
4749
|
width: PANEL_WIDTH,
|
|
4669
4750
|
backgroundColor: colors.bg,
|
|
4670
4751
|
borderRadius: 12,
|
|
@@ -4672,7 +4753,7 @@ function BugBearPanel({
|
|
|
4672
4753
|
overflow: "hidden",
|
|
4673
4754
|
boxShadow: "0 25px 50px -12px rgba(0,0,0,0.5)"
|
|
4674
4755
|
}, children: [
|
|
4675
|
-
/* @__PURE__ */ (0,
|
|
4756
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
4676
4757
|
"div",
|
|
4677
4758
|
{
|
|
4678
4759
|
"data-drag-handle": true,
|
|
@@ -4688,7 +4769,7 @@ function BugBearPanel({
|
|
|
4688
4769
|
cursor: draggable ? isDragging ? "grabbing" : "grab" : "default"
|
|
4689
4770
|
},
|
|
4690
4771
|
children: [
|
|
4691
|
-
/* @__PURE__ */ (0,
|
|
4772
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { style: { display: "flex", alignItems: "center", gap: 8, flex: 1, minWidth: 0 }, children: canGoBack ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
4692
4773
|
"button",
|
|
4693
4774
|
{
|
|
4694
4775
|
onClick: pop,
|
|
@@ -4704,14 +4785,14 @@ function BugBearPanel({
|
|
|
4704
4785
|
},
|
|
4705
4786
|
children: "\u2190 Back"
|
|
4706
4787
|
}
|
|
4707
|
-
) : /* @__PURE__ */ (0,
|
|
4708
|
-
/* @__PURE__ */ (0,
|
|
4709
|
-
/* @__PURE__ */ (0,
|
|
4710
|
-
/* @__PURE__ */ (0,
|
|
4711
|
-
/* @__PURE__ */ (0,
|
|
4712
|
-
draggable && /* @__PURE__ */ (0,
|
|
4788
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_jsx_runtime17.Fragment, { children: [
|
|
4789
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(BugBearIcon, { size: 28 }),
|
|
4790
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { children: [
|
|
4791
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [
|
|
4792
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { style: { fontWeight: 600, fontSize: "0.875rem" }, children: "BugBear" }),
|
|
4793
|
+
draggable && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { style: { color: colors.textMuted, fontSize: "0.75rem" }, title: "Drag to move, double-click to reset", children: "\u22EE\u22EE" })
|
|
4713
4794
|
] }),
|
|
4714
|
-
testerInfo && /* @__PURE__ */ (0,
|
|
4795
|
+
testerInfo && /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
4715
4796
|
"button",
|
|
4716
4797
|
{
|
|
4717
4798
|
onClick: () => push({ name: "PROFILE" }),
|
|
@@ -4729,13 +4810,13 @@ function BugBearPanel({
|
|
|
4729
4810
|
},
|
|
4730
4811
|
children: [
|
|
4731
4812
|
testerInfo.name,
|
|
4732
|
-
/* @__PURE__ */ (0,
|
|
4813
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { style: { fontSize: "0.625rem" }, children: "\u270E" })
|
|
4733
4814
|
]
|
|
4734
4815
|
}
|
|
4735
4816
|
)
|
|
4736
4817
|
] })
|
|
4737
4818
|
] }) }),
|
|
4738
|
-
headerTitle ? /* @__PURE__ */ (0,
|
|
4819
|
+
headerTitle ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { style: {
|
|
4739
4820
|
fontSize: "0.8125rem",
|
|
4740
4821
|
fontWeight: 600,
|
|
4741
4822
|
color: colors.textSecondary,
|
|
@@ -4745,7 +4826,7 @@ function BugBearPanel({
|
|
|
4745
4826
|
textOverflow: "ellipsis",
|
|
4746
4827
|
whiteSpace: "nowrap"
|
|
4747
4828
|
}, children: headerTitle }) : null,
|
|
4748
|
-
/* @__PURE__ */ (0,
|
|
4829
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
4749
4830
|
"button",
|
|
4750
4831
|
{
|
|
4751
4832
|
onClick: handleClose,
|
|
@@ -4769,13 +4850,13 @@ function BugBearPanel({
|
|
|
4769
4850
|
]
|
|
4770
4851
|
}
|
|
4771
4852
|
),
|
|
4772
|
-
/* @__PURE__ */ (0,
|
|
4853
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { style: {
|
|
4773
4854
|
padding: 16,
|
|
4774
4855
|
maxHeight: 400,
|
|
4775
4856
|
overflowY: "auto",
|
|
4776
4857
|
backgroundColor: colors.bg,
|
|
4777
4858
|
color: colors.textSecondary
|
|
4778
|
-
}, children: isLoading ? /* @__PURE__ */ (0,
|
|
4859
|
+
}, children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { style: { padding: "60px 0", textAlign: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { style: { color: colors.textMuted, fontSize: "0.875rem" }, children: "Loading..." }) }) : renderScreen() })
|
|
4779
4860
|
] })
|
|
4780
4861
|
]
|
|
4781
4862
|
}
|
|
@@ -4787,7 +4868,7 @@ function BugBearPanel({
|
|
|
4787
4868
|
// src/BugBearErrorBoundary.tsx
|
|
4788
4869
|
var import_react15 = require("react");
|
|
4789
4870
|
var import_core2 = require("@bbearai/core");
|
|
4790
|
-
var
|
|
4871
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
4791
4872
|
var BugBearErrorBoundary = class extends import_react15.Component {
|
|
4792
4873
|
constructor(props) {
|
|
4793
4874
|
super(props);
|
|
@@ -4832,7 +4913,7 @@ var BugBearErrorBoundary = class extends import_react15.Component {
|
|
|
4832
4913
|
if (fallback) {
|
|
4833
4914
|
return fallback;
|
|
4834
4915
|
}
|
|
4835
|
-
return /* @__PURE__ */ (0,
|
|
4916
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
4836
4917
|
"div",
|
|
4837
4918
|
{
|
|
4838
4919
|
style: {
|
|
@@ -4844,13 +4925,13 @@ var BugBearErrorBoundary = class extends import_react15.Component {
|
|
|
4844
4925
|
fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'
|
|
4845
4926
|
},
|
|
4846
4927
|
children: [
|
|
4847
|
-
/* @__PURE__ */ (0,
|
|
4848
|
-
/* @__PURE__ */ (0,
|
|
4849
|
-
/* @__PURE__ */ (0,
|
|
4928
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "8px", marginBottom: "12px" }, children: [
|
|
4929
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("img", { src: BUGBEAR_LOGO_BASE64, alt: "BugBear", width: 28, height: 28, style: { objectFit: "contain" } }),
|
|
4930
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h3", { style: { margin: 0, color: "#991b1b", fontSize: "16px" }, children: "Something went wrong" })
|
|
4850
4931
|
] }),
|
|
4851
|
-
/* @__PURE__ */ (0,
|
|
4852
|
-
/* @__PURE__ */ (0,
|
|
4853
|
-
/* @__PURE__ */ (0,
|
|
4932
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("p", { style: { color: "#7f1d1d", fontSize: "14px", margin: "0 0 12px 0" }, children: error.message }),
|
|
4933
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { style: { display: "flex", gap: "8px" }, children: [
|
|
4934
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
4854
4935
|
"button",
|
|
4855
4936
|
{
|
|
4856
4937
|
onClick: this.reset,
|
|
@@ -4867,7 +4948,7 @@ var BugBearErrorBoundary = class extends import_react15.Component {
|
|
|
4867
4948
|
children: "Try Again"
|
|
4868
4949
|
}
|
|
4869
4950
|
),
|
|
4870
|
-
/* @__PURE__ */ (0,
|
|
4951
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
4871
4952
|
"button",
|
|
4872
4953
|
{
|
|
4873
4954
|
onClick: () => window.location.reload(),
|
|
@@ -4885,7 +4966,7 @@ var BugBearErrorBoundary = class extends import_react15.Component {
|
|
|
4885
4966
|
}
|
|
4886
4967
|
)
|
|
4887
4968
|
] }),
|
|
4888
|
-
/* @__PURE__ */ (0,
|
|
4969
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("p", { style: { color: "#9ca3af", fontSize: "12px", marginTop: "12px" }, children: "The error has been captured by BugBear" })
|
|
4889
4970
|
]
|
|
4890
4971
|
}
|
|
4891
4972
|
);
|