@bbearai/react 0.4.3 → 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/dist/index.js +308 -235
- package/dist/index.mjs +299 -236
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -2544,18 +2544,72 @@ var styles = {
|
|
|
2544
2544
|
};
|
|
2545
2545
|
|
|
2546
2546
|
// src/widget/screens/ReportScreen.tsx
|
|
2547
|
-
import { useState as useState6, useRef as useRef2 } from "react";
|
|
2548
|
-
|
|
2547
|
+
import React6, { useState as useState6, useRef as useRef2 } from "react";
|
|
2548
|
+
|
|
2549
|
+
// src/widget/CategoryDropdown.tsx
|
|
2550
|
+
import { jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
2551
|
+
var categoryOptions = [
|
|
2552
|
+
{ value: "ui_ux", label: "UI/UX", icon: "\u{1F3A8}" },
|
|
2553
|
+
{ value: "functional", label: "Functional", icon: "\u2699\uFE0F" },
|
|
2554
|
+
{ value: "crash", label: "Crash", icon: "\u{1F4A5}" },
|
|
2555
|
+
{ value: "security", label: "Security", icon: "\u{1F510}" },
|
|
2556
|
+
{ value: "other", label: "Other", icon: "\u{1F4DD}" }
|
|
2557
|
+
];
|
|
2558
|
+
function CategoryDropdown({ value, onChange, optional = true, disabled = false }) {
|
|
2559
|
+
return /* @__PURE__ */ jsxs7(
|
|
2560
|
+
"select",
|
|
2561
|
+
{
|
|
2562
|
+
value: value || "",
|
|
2563
|
+
onChange: (e) => onChange(e.target.value ? e.target.value : null),
|
|
2564
|
+
disabled,
|
|
2565
|
+
style: {
|
|
2566
|
+
width: "100%",
|
|
2567
|
+
backgroundColor: disabled ? colors.bg : colors.card,
|
|
2568
|
+
border: `1px solid ${colors.border}`,
|
|
2569
|
+
borderRadius: 8,
|
|
2570
|
+
padding: "10px 12px",
|
|
2571
|
+
fontSize: 14,
|
|
2572
|
+
color: colors.textPrimary,
|
|
2573
|
+
cursor: disabled ? "not-allowed" : "pointer",
|
|
2574
|
+
opacity: disabled ? 0.5 : 1,
|
|
2575
|
+
appearance: "none",
|
|
2576
|
+
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")`,
|
|
2577
|
+
backgroundRepeat: "no-repeat",
|
|
2578
|
+
backgroundPosition: "right 12px center",
|
|
2579
|
+
paddingRight: 32
|
|
2580
|
+
},
|
|
2581
|
+
children: [
|
|
2582
|
+
/* @__PURE__ */ jsx8("option", { value: "", children: optional ? "Select category (optional)" : "Select category" }),
|
|
2583
|
+
categoryOptions.map(({ value: value2, label, icon }) => /* @__PURE__ */ jsxs7("option", { value: value2, children: [
|
|
2584
|
+
icon,
|
|
2585
|
+
" ",
|
|
2586
|
+
label
|
|
2587
|
+
] }, value2))
|
|
2588
|
+
]
|
|
2589
|
+
}
|
|
2590
|
+
);
|
|
2591
|
+
}
|
|
2592
|
+
|
|
2593
|
+
// src/widget/screens/ReportScreen.tsx
|
|
2594
|
+
import { Fragment as Fragment3, jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
2549
2595
|
function ReportScreen({ nav, prefill }) {
|
|
2550
2596
|
const { client, refreshAssignments, uploadImage } = useBugBear();
|
|
2551
2597
|
const images = useImageAttachments(uploadImage, 5, "screenshots");
|
|
2552
2598
|
const [reportType, setReportType] = useState6(prefill?.type || "bug");
|
|
2553
2599
|
const [severity, setSeverity] = useState6("medium");
|
|
2600
|
+
const [category, setCategory] = useState6(null);
|
|
2554
2601
|
const [description, setDescription] = useState6("");
|
|
2555
2602
|
const [affectedRoute, setAffectedRoute] = useState6("");
|
|
2556
2603
|
const [submitting, setSubmitting] = useState6(false);
|
|
2557
2604
|
const [error, setError] = useState6(null);
|
|
2558
2605
|
const submittingRef = useRef2(false);
|
|
2606
|
+
React6.useEffect(() => {
|
|
2607
|
+
if (reportType === "feedback" || reportType === "suggestion") {
|
|
2608
|
+
setCategory("other");
|
|
2609
|
+
} else {
|
|
2610
|
+
setCategory(null);
|
|
2611
|
+
}
|
|
2612
|
+
}, [reportType]);
|
|
2559
2613
|
const observedRoute = useRef2(
|
|
2560
2614
|
typeof window !== "undefined" ? window.location.pathname : "unknown"
|
|
2561
2615
|
);
|
|
@@ -2578,6 +2632,7 @@ function ReportScreen({ nav, prefill }) {
|
|
|
2578
2632
|
type: reportType,
|
|
2579
2633
|
description: description.trim(),
|
|
2580
2634
|
severity: isBugType ? severity : void 0,
|
|
2635
|
+
category: category || void 0,
|
|
2581
2636
|
screenshots: screenshotUrls.length > 0 ? screenshotUrls : void 0,
|
|
2582
2637
|
assignmentId: prefill?.assignmentId,
|
|
2583
2638
|
testCaseId: prefill?.testCaseId,
|
|
@@ -2611,17 +2666,17 @@ function ReportScreen({ nav, prefill }) {
|
|
|
2611
2666
|
{ sev: "medium", color: "#eab308" },
|
|
2612
2667
|
{ sev: "low", color: "#6b7280" }
|
|
2613
2668
|
];
|
|
2614
|
-
return /* @__PURE__ */
|
|
2615
|
-
/* @__PURE__ */
|
|
2616
|
-
/* @__PURE__ */
|
|
2617
|
-
/* @__PURE__ */
|
|
2618
|
-
/* @__PURE__ */
|
|
2619
|
-
/* @__PURE__ */
|
|
2669
|
+
return /* @__PURE__ */ jsx9("div", { children: isRetestFailure ? /* @__PURE__ */ jsxs8(Fragment3, { children: [
|
|
2670
|
+
/* @__PURE__ */ jsxs8("div", { style: styles2.retestBanner, children: [
|
|
2671
|
+
/* @__PURE__ */ jsx9("span", { style: { fontSize: 16 }, children: "\u{1F504}" }),
|
|
2672
|
+
/* @__PURE__ */ jsxs8("div", { children: [
|
|
2673
|
+
/* @__PURE__ */ jsx9("div", { style: styles2.retestTitle, children: "Bug Still Present" }),
|
|
2674
|
+
/* @__PURE__ */ jsx9("div", { style: styles2.retestSubtitle, children: "The fix did not resolve this issue" })
|
|
2620
2675
|
] })
|
|
2621
2676
|
] }),
|
|
2622
|
-
/* @__PURE__ */
|
|
2623
|
-
/* @__PURE__ */
|
|
2624
|
-
/* @__PURE__ */
|
|
2677
|
+
/* @__PURE__ */ jsxs8("div", { style: styles2.section, children: [
|
|
2678
|
+
/* @__PURE__ */ jsx9("div", { style: styles2.label, children: "Severity" }),
|
|
2679
|
+
/* @__PURE__ */ jsx9("div", { style: styles2.severityRow, children: severityOptions.map(({ sev, color }) => /* @__PURE__ */ jsx9(
|
|
2625
2680
|
"button",
|
|
2626
2681
|
{
|
|
2627
2682
|
onClick: () => setSeverity(sev),
|
|
@@ -2629,14 +2684,18 @@ function ReportScreen({ nav, prefill }) {
|
|
|
2629
2684
|
...styles2.sevButton,
|
|
2630
2685
|
...severity === sev ? { backgroundColor: `${color}30`, borderColor: color } : {}
|
|
2631
2686
|
},
|
|
2632
|
-
children: /* @__PURE__ */
|
|
2687
|
+
children: /* @__PURE__ */ jsx9("span", { style: { ...styles2.sevText, ...severity === sev ? { color } : {} }, children: sev })
|
|
2633
2688
|
},
|
|
2634
2689
|
sev
|
|
2635
2690
|
)) })
|
|
2636
2691
|
] }),
|
|
2637
|
-
/* @__PURE__ */
|
|
2638
|
-
/* @__PURE__ */
|
|
2639
|
-
/* @__PURE__ */
|
|
2692
|
+
/* @__PURE__ */ jsxs8("div", { style: styles2.section, children: [
|
|
2693
|
+
/* @__PURE__ */ jsx9("div", { style: styles2.label, children: "Category (optional)" }),
|
|
2694
|
+
/* @__PURE__ */ jsx9(CategoryDropdown, { value: category, onChange: setCategory, optional: true })
|
|
2695
|
+
] }),
|
|
2696
|
+
/* @__PURE__ */ jsxs8("div", { style: styles2.section, children: [
|
|
2697
|
+
/* @__PURE__ */ jsx9("div", { style: styles2.label, children: "What went wrong?" }),
|
|
2698
|
+
/* @__PURE__ */ jsx9(
|
|
2640
2699
|
"textarea",
|
|
2641
2700
|
{
|
|
2642
2701
|
style: styles2.descInput,
|
|
@@ -2647,7 +2706,7 @@ function ReportScreen({ nav, prefill }) {
|
|
|
2647
2706
|
}
|
|
2648
2707
|
)
|
|
2649
2708
|
] }),
|
|
2650
|
-
/* @__PURE__ */
|
|
2709
|
+
/* @__PURE__ */ jsx9(
|
|
2651
2710
|
ImagePickerButtons,
|
|
2652
2711
|
{
|
|
2653
2712
|
images: images.images,
|
|
@@ -2658,8 +2717,8 @@ function ReportScreen({ nav, prefill }) {
|
|
|
2658
2717
|
label: "Attachments (optional)"
|
|
2659
2718
|
}
|
|
2660
2719
|
),
|
|
2661
|
-
error && /* @__PURE__ */
|
|
2662
|
-
/* @__PURE__ */
|
|
2720
|
+
error && /* @__PURE__ */ jsx9("div", { style: styles2.errorBanner, children: error }),
|
|
2721
|
+
/* @__PURE__ */ jsx9(
|
|
2663
2722
|
"button",
|
|
2664
2723
|
{
|
|
2665
2724
|
style: {
|
|
@@ -2672,9 +2731,9 @@ function ReportScreen({ nav, prefill }) {
|
|
|
2672
2731
|
children: images.isUploading ? "Uploading images..." : submitting ? "Submitting..." : error ? "Retry" : "Submit Failed Retest"
|
|
2673
2732
|
}
|
|
2674
2733
|
)
|
|
2675
|
-
] }) : /* @__PURE__ */
|
|
2676
|
-
/* @__PURE__ */
|
|
2677
|
-
/* @__PURE__ */
|
|
2734
|
+
] }) : /* @__PURE__ */ jsxs8(Fragment3, { children: [
|
|
2735
|
+
/* @__PURE__ */ jsx9("div", { style: styles2.label, children: "What are you reporting?" }),
|
|
2736
|
+
/* @__PURE__ */ jsx9("div", { style: styles2.typeRow, children: typeOptions.map(({ type, label, icon }) => /* @__PURE__ */ jsxs8(
|
|
2678
2737
|
"button",
|
|
2679
2738
|
{
|
|
2680
2739
|
onClick: () => setReportType(type),
|
|
@@ -2683,8 +2742,8 @@ function ReportScreen({ nav, prefill }) {
|
|
|
2683
2742
|
...reportType === type ? styles2.typeCardActive : {}
|
|
2684
2743
|
},
|
|
2685
2744
|
children: [
|
|
2686
|
-
/* @__PURE__ */
|
|
2687
|
-
/* @__PURE__ */
|
|
2745
|
+
/* @__PURE__ */ jsx9("div", { style: styles2.typeIcon, children: icon }),
|
|
2746
|
+
/* @__PURE__ */ jsx9(
|
|
2688
2747
|
"div",
|
|
2689
2748
|
{
|
|
2690
2749
|
style: {
|
|
@@ -2698,9 +2757,9 @@ function ReportScreen({ nav, prefill }) {
|
|
|
2698
2757
|
},
|
|
2699
2758
|
type
|
|
2700
2759
|
)) }),
|
|
2701
|
-
isBugType && /* @__PURE__ */
|
|
2702
|
-
/* @__PURE__ */
|
|
2703
|
-
/* @__PURE__ */
|
|
2760
|
+
isBugType && /* @__PURE__ */ jsxs8("div", { style: styles2.section, children: [
|
|
2761
|
+
/* @__PURE__ */ jsx9("div", { style: styles2.label, children: "Severity" }),
|
|
2762
|
+
/* @__PURE__ */ jsx9("div", { style: styles2.severityRow, children: severityOptions.map(({ sev, color }) => /* @__PURE__ */ jsx9(
|
|
2704
2763
|
"button",
|
|
2705
2764
|
{
|
|
2706
2765
|
onClick: () => setSeverity(sev),
|
|
@@ -2711,7 +2770,7 @@ function ReportScreen({ nav, prefill }) {
|
|
|
2711
2770
|
borderColor: color
|
|
2712
2771
|
} : {}
|
|
2713
2772
|
},
|
|
2714
|
-
children: /* @__PURE__ */
|
|
2773
|
+
children: /* @__PURE__ */ jsx9(
|
|
2715
2774
|
"span",
|
|
2716
2775
|
{
|
|
2717
2776
|
style: {
|
|
@@ -2725,9 +2784,13 @@ function ReportScreen({ nav, prefill }) {
|
|
|
2725
2784
|
sev
|
|
2726
2785
|
)) })
|
|
2727
2786
|
] }),
|
|
2728
|
-
/* @__PURE__ */
|
|
2729
|
-
/* @__PURE__ */
|
|
2730
|
-
/* @__PURE__ */
|
|
2787
|
+
isBugType && /* @__PURE__ */ jsxs8("div", { style: styles2.section, children: [
|
|
2788
|
+
/* @__PURE__ */ jsx9("div", { style: styles2.label, children: "Category (optional)" }),
|
|
2789
|
+
/* @__PURE__ */ jsx9(CategoryDropdown, { value: category, onChange: setCategory, optional: true })
|
|
2790
|
+
] }),
|
|
2791
|
+
/* @__PURE__ */ jsxs8("div", { style: styles2.section, children: [
|
|
2792
|
+
/* @__PURE__ */ jsx9("div", { style: styles2.label, children: "What happened?" }),
|
|
2793
|
+
/* @__PURE__ */ jsx9(
|
|
2731
2794
|
"textarea",
|
|
2732
2795
|
{
|
|
2733
2796
|
style: styles2.descInput,
|
|
@@ -2738,9 +2801,9 @@ function ReportScreen({ nav, prefill }) {
|
|
|
2738
2801
|
}
|
|
2739
2802
|
)
|
|
2740
2803
|
] }),
|
|
2741
|
-
isBugType && /* @__PURE__ */
|
|
2742
|
-
/* @__PURE__ */
|
|
2743
|
-
/* @__PURE__ */
|
|
2804
|
+
isBugType && /* @__PURE__ */ jsxs8("div", { style: styles2.section, children: [
|
|
2805
|
+
/* @__PURE__ */ jsx9("div", { style: styles2.label, children: "Where did it happen?" }),
|
|
2806
|
+
/* @__PURE__ */ jsx9(
|
|
2744
2807
|
"input",
|
|
2745
2808
|
{
|
|
2746
2809
|
style: styles2.routeInput,
|
|
@@ -2749,13 +2812,13 @@ function ReportScreen({ nav, prefill }) {
|
|
|
2749
2812
|
placeholder: observedRoute.current
|
|
2750
2813
|
}
|
|
2751
2814
|
),
|
|
2752
|
-
/* @__PURE__ */
|
|
2815
|
+
/* @__PURE__ */ jsxs8("div", { style: styles2.routeHint, children: [
|
|
2753
2816
|
"Leave blank to use current page (",
|
|
2754
2817
|
observedRoute.current,
|
|
2755
2818
|
")"
|
|
2756
2819
|
] })
|
|
2757
2820
|
] }),
|
|
2758
|
-
/* @__PURE__ */
|
|
2821
|
+
/* @__PURE__ */ jsx9(
|
|
2759
2822
|
ImagePickerButtons,
|
|
2760
2823
|
{
|
|
2761
2824
|
images: images.images,
|
|
@@ -2766,8 +2829,8 @@ function ReportScreen({ nav, prefill }) {
|
|
|
2766
2829
|
label: "Screenshots (optional)"
|
|
2767
2830
|
}
|
|
2768
2831
|
),
|
|
2769
|
-
error && /* @__PURE__ */
|
|
2770
|
-
/* @__PURE__ */
|
|
2832
|
+
error && /* @__PURE__ */ jsx9("div", { style: styles2.errorBanner, children: error }),
|
|
2833
|
+
/* @__PURE__ */ jsx9(
|
|
2771
2834
|
"button",
|
|
2772
2835
|
{
|
|
2773
2836
|
style: {
|
|
@@ -2932,16 +2995,16 @@ var styles2 = {
|
|
|
2932
2995
|
|
|
2933
2996
|
// src/widget/screens/ReportSuccessScreen.tsx
|
|
2934
2997
|
import { useEffect as useEffect4 } from "react";
|
|
2935
|
-
import { jsx as
|
|
2998
|
+
import { jsx as jsx10, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
2936
2999
|
function ReportSuccessScreen({ nav }) {
|
|
2937
3000
|
useEffect4(() => {
|
|
2938
3001
|
const timer = setTimeout(() => nav.reset(), 2e3);
|
|
2939
3002
|
return () => clearTimeout(timer);
|
|
2940
3003
|
}, [nav]);
|
|
2941
|
-
return /* @__PURE__ */
|
|
2942
|
-
/* @__PURE__ */
|
|
2943
|
-
/* @__PURE__ */
|
|
2944
|
-
/* @__PURE__ */
|
|
3004
|
+
return /* @__PURE__ */ jsxs9("div", { style: styles3.container, children: [
|
|
3005
|
+
/* @__PURE__ */ jsx10("div", { style: styles3.emoji, children: "\u{1F389}" }),
|
|
3006
|
+
/* @__PURE__ */ jsx10("div", { style: styles3.title, children: "Report submitted!" }),
|
|
3007
|
+
/* @__PURE__ */ jsx10("div", { style: styles3.subtitle, children: "Thank you for your feedback" })
|
|
2945
3008
|
] });
|
|
2946
3009
|
}
|
|
2947
3010
|
var styles3 = {
|
|
@@ -2970,11 +3033,11 @@ var styles3 = {
|
|
|
2970
3033
|
};
|
|
2971
3034
|
|
|
2972
3035
|
// src/widget/screens/MessageListScreen.tsx
|
|
2973
|
-
import { jsx as
|
|
3036
|
+
import { jsx as jsx11, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
2974
3037
|
function MessageListScreen({ nav }) {
|
|
2975
3038
|
const { threads, unreadCount, refreshThreads } = useBugBear();
|
|
2976
|
-
return /* @__PURE__ */
|
|
2977
|
-
/* @__PURE__ */
|
|
3039
|
+
return /* @__PURE__ */ jsxs10("div", { children: [
|
|
3040
|
+
/* @__PURE__ */ jsx11(
|
|
2978
3041
|
"button",
|
|
2979
3042
|
{
|
|
2980
3043
|
style: {
|
|
@@ -2993,7 +3056,7 @@ function MessageListScreen({ nav }) {
|
|
|
2993
3056
|
children: "\u2709\uFE0F New Message"
|
|
2994
3057
|
}
|
|
2995
3058
|
),
|
|
2996
|
-
threads.length === 0 ? /* @__PURE__ */
|
|
3059
|
+
threads.length === 0 ? /* @__PURE__ */ jsxs10(
|
|
2997
3060
|
"div",
|
|
2998
3061
|
{
|
|
2999
3062
|
style: {
|
|
@@ -3004,8 +3067,8 @@ function MessageListScreen({ nav }) {
|
|
|
3004
3067
|
paddingBottom: 40
|
|
3005
3068
|
},
|
|
3006
3069
|
children: [
|
|
3007
|
-
/* @__PURE__ */
|
|
3008
|
-
/* @__PURE__ */
|
|
3070
|
+
/* @__PURE__ */ jsx11("span", { style: { fontSize: 36, marginBottom: 12 }, children: "\u{1F4AC}" }),
|
|
3071
|
+
/* @__PURE__ */ jsx11(
|
|
3009
3072
|
"span",
|
|
3010
3073
|
{
|
|
3011
3074
|
style: {
|
|
@@ -3017,7 +3080,7 @@ function MessageListScreen({ nav }) {
|
|
|
3017
3080
|
children: "No messages yet"
|
|
3018
3081
|
}
|
|
3019
3082
|
),
|
|
3020
|
-
/* @__PURE__ */
|
|
3083
|
+
/* @__PURE__ */ jsx11(
|
|
3021
3084
|
"span",
|
|
3022
3085
|
{
|
|
3023
3086
|
style: {
|
|
@@ -3030,7 +3093,7 @@ function MessageListScreen({ nav }) {
|
|
|
3030
3093
|
)
|
|
3031
3094
|
]
|
|
3032
3095
|
}
|
|
3033
|
-
) : /* @__PURE__ */
|
|
3096
|
+
) : /* @__PURE__ */ jsx11("div", { children: threads.map((thread) => /* @__PURE__ */ jsxs10(
|
|
3034
3097
|
"button",
|
|
3035
3098
|
{
|
|
3036
3099
|
style: {
|
|
@@ -3048,8 +3111,8 @@ function MessageListScreen({ nav }) {
|
|
|
3048
3111
|
},
|
|
3049
3112
|
onClick: () => nav.push({ name: "THREAD_DETAIL", thread }),
|
|
3050
3113
|
children: [
|
|
3051
|
-
/* @__PURE__ */
|
|
3052
|
-
/* @__PURE__ */
|
|
3114
|
+
/* @__PURE__ */ jsxs10("div", { style: { display: "flex", flex: 1, minWidth: 0 }, children: [
|
|
3115
|
+
/* @__PURE__ */ jsx11(
|
|
3053
3116
|
"span",
|
|
3054
3117
|
{
|
|
3055
3118
|
style: {
|
|
@@ -3061,7 +3124,7 @@ function MessageListScreen({ nav }) {
|
|
|
3061
3124
|
children: getThreadTypeIcon(thread.threadType)
|
|
3062
3125
|
}
|
|
3063
3126
|
),
|
|
3064
|
-
/* @__PURE__ */
|
|
3127
|
+
/* @__PURE__ */ jsxs10(
|
|
3065
3128
|
"div",
|
|
3066
3129
|
{
|
|
3067
3130
|
style: {
|
|
@@ -3069,7 +3132,7 @@ function MessageListScreen({ nav }) {
|
|
|
3069
3132
|
minWidth: 0
|
|
3070
3133
|
},
|
|
3071
3134
|
children: [
|
|
3072
|
-
/* @__PURE__ */
|
|
3135
|
+
/* @__PURE__ */ jsxs10(
|
|
3073
3136
|
"div",
|
|
3074
3137
|
{
|
|
3075
3138
|
style: {
|
|
@@ -3078,8 +3141,8 @@ function MessageListScreen({ nav }) {
|
|
|
3078
3141
|
gap: 4
|
|
3079
3142
|
},
|
|
3080
3143
|
children: [
|
|
3081
|
-
thread.isPinned && /* @__PURE__ */
|
|
3082
|
-
/* @__PURE__ */
|
|
3144
|
+
thread.isPinned && /* @__PURE__ */ jsx11("span", { style: { fontSize: 12, flexShrink: 0 }, children: "\u{1F4CC}" }),
|
|
3145
|
+
/* @__PURE__ */ jsx11(
|
|
3083
3146
|
"span",
|
|
3084
3147
|
{
|
|
3085
3148
|
style: {
|
|
@@ -3096,7 +3159,7 @@ function MessageListScreen({ nav }) {
|
|
|
3096
3159
|
]
|
|
3097
3160
|
}
|
|
3098
3161
|
),
|
|
3099
|
-
thread.lastMessage && /* @__PURE__ */
|
|
3162
|
+
thread.lastMessage && /* @__PURE__ */ jsxs10(
|
|
3100
3163
|
"span",
|
|
3101
3164
|
{
|
|
3102
3165
|
style: {
|
|
@@ -3120,7 +3183,7 @@ function MessageListScreen({ nav }) {
|
|
|
3120
3183
|
}
|
|
3121
3184
|
)
|
|
3122
3185
|
] }),
|
|
3123
|
-
/* @__PURE__ */
|
|
3186
|
+
/* @__PURE__ */ jsxs10(
|
|
3124
3187
|
"div",
|
|
3125
3188
|
{
|
|
3126
3189
|
style: {
|
|
@@ -3132,8 +3195,8 @@ function MessageListScreen({ nav }) {
|
|
|
3132
3195
|
flexShrink: 0
|
|
3133
3196
|
},
|
|
3134
3197
|
children: [
|
|
3135
|
-
/* @__PURE__ */
|
|
3136
|
-
thread.unreadCount > 0 && /* @__PURE__ */
|
|
3198
|
+
/* @__PURE__ */ jsx11("span", { style: { fontSize: 11, color: colors.textDim }, children: formatRelativeTime(thread.lastMessageAt) }),
|
|
3199
|
+
thread.unreadCount > 0 && /* @__PURE__ */ jsx11(
|
|
3137
3200
|
"span",
|
|
3138
3201
|
{
|
|
3139
3202
|
style: {
|
|
@@ -3160,7 +3223,7 @@ function MessageListScreen({ nav }) {
|
|
|
3160
3223
|
},
|
|
3161
3224
|
thread.id
|
|
3162
3225
|
)) }),
|
|
3163
|
-
/* @__PURE__ */
|
|
3226
|
+
/* @__PURE__ */ jsxs10(
|
|
3164
3227
|
"div",
|
|
3165
3228
|
{
|
|
3166
3229
|
style: {
|
|
@@ -3172,7 +3235,7 @@ function MessageListScreen({ nav }) {
|
|
|
3172
3235
|
paddingRight: 4
|
|
3173
3236
|
},
|
|
3174
3237
|
children: [
|
|
3175
|
-
/* @__PURE__ */
|
|
3238
|
+
/* @__PURE__ */ jsxs10("span", { style: { fontSize: 12, color: colors.textMuted }, children: [
|
|
3176
3239
|
threads.length,
|
|
3177
3240
|
" thread",
|
|
3178
3241
|
threads.length !== 1 ? "s" : "",
|
|
@@ -3181,7 +3244,7 @@ function MessageListScreen({ nav }) {
|
|
|
3181
3244
|
unreadCount,
|
|
3182
3245
|
" unread"
|
|
3183
3246
|
] }),
|
|
3184
|
-
/* @__PURE__ */
|
|
3247
|
+
/* @__PURE__ */ jsx11(
|
|
3185
3248
|
"button",
|
|
3186
3249
|
{
|
|
3187
3250
|
style: {
|
|
@@ -3204,7 +3267,7 @@ function MessageListScreen({ nav }) {
|
|
|
3204
3267
|
|
|
3205
3268
|
// src/widget/screens/ThreadDetailScreen.tsx
|
|
3206
3269
|
import { useState as useState7, useEffect as useEffect5 } from "react";
|
|
3207
|
-
import { jsx as
|
|
3270
|
+
import { jsx as jsx12, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
3208
3271
|
var inputStyle = {
|
|
3209
3272
|
backgroundColor: "#27272a",
|
|
3210
3273
|
border: "1px solid #3f3f46",
|
|
@@ -3263,8 +3326,8 @@ function ThreadDetailScreen({
|
|
|
3263
3326
|
handleSend();
|
|
3264
3327
|
}
|
|
3265
3328
|
};
|
|
3266
|
-
return /* @__PURE__ */
|
|
3267
|
-
/* @__PURE__ */
|
|
3329
|
+
return /* @__PURE__ */ jsxs11("div", { style: { display: "flex", flexDirection: "column", flex: 1 }, children: [
|
|
3330
|
+
/* @__PURE__ */ jsxs11(
|
|
3268
3331
|
"div",
|
|
3269
3332
|
{
|
|
3270
3333
|
style: {
|
|
@@ -3276,8 +3339,8 @@ function ThreadDetailScreen({
|
|
|
3276
3339
|
borderBottom: `1px solid ${colors.border}`
|
|
3277
3340
|
},
|
|
3278
3341
|
children: [
|
|
3279
|
-
/* @__PURE__ */
|
|
3280
|
-
/* @__PURE__ */
|
|
3342
|
+
/* @__PURE__ */ jsx12("span", { style: { fontSize: 20 }, children: getThreadTypeIcon(thread.threadType) }),
|
|
3343
|
+
/* @__PURE__ */ jsx12(
|
|
3281
3344
|
"span",
|
|
3282
3345
|
{
|
|
3283
3346
|
style: {
|
|
@@ -3297,7 +3360,7 @@ function ThreadDetailScreen({
|
|
|
3297
3360
|
]
|
|
3298
3361
|
}
|
|
3299
3362
|
),
|
|
3300
|
-
loading ? /* @__PURE__ */
|
|
3363
|
+
loading ? /* @__PURE__ */ jsx12(
|
|
3301
3364
|
"div",
|
|
3302
3365
|
{
|
|
3303
3366
|
style: {
|
|
@@ -3305,11 +3368,11 @@ function ThreadDetailScreen({
|
|
|
3305
3368
|
paddingBottom: 40,
|
|
3306
3369
|
textAlign: "center"
|
|
3307
3370
|
},
|
|
3308
|
-
children: /* @__PURE__ */
|
|
3371
|
+
children: /* @__PURE__ */ jsx12("span", { style: { fontSize: 14, color: colors.textMuted }, children: "Loading messages..." })
|
|
3309
3372
|
}
|
|
3310
|
-
) : /* @__PURE__ */
|
|
3373
|
+
) : /* @__PURE__ */ jsx12("div", { style: { paddingBottom: 8, marginBottom: 8 }, children: messages.map((msg) => {
|
|
3311
3374
|
const isTester = msg.senderType === "tester";
|
|
3312
|
-
return /* @__PURE__ */
|
|
3375
|
+
return /* @__PURE__ */ jsxs11(
|
|
3313
3376
|
"div",
|
|
3314
3377
|
{
|
|
3315
3378
|
style: {
|
|
@@ -3325,7 +3388,7 @@ function ThreadDetailScreen({
|
|
|
3325
3388
|
borderBottomRightRadius: isTester ? 4 : 16
|
|
3326
3389
|
},
|
|
3327
3390
|
children: [
|
|
3328
|
-
/* @__PURE__ */
|
|
3391
|
+
/* @__PURE__ */ jsx12(
|
|
3329
3392
|
"span",
|
|
3330
3393
|
{
|
|
3331
3394
|
style: {
|
|
@@ -3338,7 +3401,7 @@ function ThreadDetailScreen({
|
|
|
3338
3401
|
children: isTester ? "You" : msg.senderName
|
|
3339
3402
|
}
|
|
3340
3403
|
),
|
|
3341
|
-
/* @__PURE__ */
|
|
3404
|
+
/* @__PURE__ */ jsx12(
|
|
3342
3405
|
"span",
|
|
3343
3406
|
{
|
|
3344
3407
|
style: {
|
|
@@ -3352,7 +3415,7 @@ function ThreadDetailScreen({
|
|
|
3352
3415
|
children: msg.content
|
|
3353
3416
|
}
|
|
3354
3417
|
),
|
|
3355
|
-
msg.attachments && msg.attachments.length > 0 && /* @__PURE__ */
|
|
3418
|
+
msg.attachments && msg.attachments.length > 0 && /* @__PURE__ */ jsx12("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__ */ jsx12(
|
|
3356
3419
|
"img",
|
|
3357
3420
|
{
|
|
3358
3421
|
src: att.url,
|
|
@@ -3361,7 +3424,7 @@ function ThreadDetailScreen({
|
|
|
3361
3424
|
},
|
|
3362
3425
|
idx
|
|
3363
3426
|
)) }),
|
|
3364
|
-
/* @__PURE__ */
|
|
3427
|
+
/* @__PURE__ */ jsx12(
|
|
3365
3428
|
"span",
|
|
3366
3429
|
{
|
|
3367
3430
|
style: {
|
|
@@ -3379,7 +3442,7 @@ function ThreadDetailScreen({
|
|
|
3379
3442
|
msg.id
|
|
3380
3443
|
);
|
|
3381
3444
|
}) }),
|
|
3382
|
-
sendError && /* @__PURE__ */
|
|
3445
|
+
sendError && /* @__PURE__ */ jsx12(
|
|
3383
3446
|
"div",
|
|
3384
3447
|
{
|
|
3385
3448
|
style: {
|
|
@@ -3391,7 +3454,7 @@ function ThreadDetailScreen({
|
|
|
3391
3454
|
borderRadius: 8,
|
|
3392
3455
|
marginBottom: 8
|
|
3393
3456
|
},
|
|
3394
|
-
children: /* @__PURE__ */
|
|
3457
|
+
children: /* @__PURE__ */ jsx12(
|
|
3395
3458
|
"span",
|
|
3396
3459
|
{
|
|
3397
3460
|
style: {
|
|
@@ -3405,8 +3468,8 @@ function ThreadDetailScreen({
|
|
|
3405
3468
|
)
|
|
3406
3469
|
}
|
|
3407
3470
|
),
|
|
3408
|
-
replyImages.images.length > 0 && /* @__PURE__ */
|
|
3409
|
-
/* @__PURE__ */
|
|
3471
|
+
replyImages.images.length > 0 && /* @__PURE__ */ jsx12("div", { style: { paddingTop: 8 }, children: /* @__PURE__ */ jsx12(ImagePreviewStrip, { images: replyImages.images, onRemove: replyImages.removeImage }) }),
|
|
3472
|
+
/* @__PURE__ */ jsxs11(
|
|
3410
3473
|
"div",
|
|
3411
3474
|
{
|
|
3412
3475
|
style: {
|
|
@@ -3417,7 +3480,7 @@ function ThreadDetailScreen({
|
|
|
3417
3480
|
gap: 8
|
|
3418
3481
|
},
|
|
3419
3482
|
children: [
|
|
3420
|
-
/* @__PURE__ */
|
|
3483
|
+
/* @__PURE__ */ jsx12(
|
|
3421
3484
|
"button",
|
|
3422
3485
|
{
|
|
3423
3486
|
type: "button",
|
|
@@ -3436,7 +3499,7 @@ function ThreadDetailScreen({
|
|
|
3436
3499
|
children: "\u{1F4CE}"
|
|
3437
3500
|
}
|
|
3438
3501
|
),
|
|
3439
|
-
/* @__PURE__ */
|
|
3502
|
+
/* @__PURE__ */ jsx12(
|
|
3440
3503
|
"input",
|
|
3441
3504
|
{
|
|
3442
3505
|
type: "text",
|
|
@@ -3452,7 +3515,7 @@ function ThreadDetailScreen({
|
|
|
3452
3515
|
}
|
|
3453
3516
|
}
|
|
3454
3517
|
),
|
|
3455
|
-
/* @__PURE__ */
|
|
3518
|
+
/* @__PURE__ */ jsx12(
|
|
3456
3519
|
"button",
|
|
3457
3520
|
{
|
|
3458
3521
|
style: {
|
|
@@ -3480,7 +3543,7 @@ function ThreadDetailScreen({
|
|
|
3480
3543
|
|
|
3481
3544
|
// src/widget/screens/ComposeMessageScreen.tsx
|
|
3482
3545
|
import { useState as useState8 } from "react";
|
|
3483
|
-
import { jsx as
|
|
3546
|
+
import { jsx as jsx13, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
3484
3547
|
var inputStyle2 = {
|
|
3485
3548
|
backgroundColor: "#27272a",
|
|
3486
3549
|
border: "1px solid #3f3f46",
|
|
@@ -3511,9 +3574,9 @@ function ComposeMessageScreen({ nav }) {
|
|
|
3511
3574
|
nav.pop();
|
|
3512
3575
|
}
|
|
3513
3576
|
};
|
|
3514
|
-
return /* @__PURE__ */
|
|
3515
|
-
/* @__PURE__ */
|
|
3516
|
-
/* @__PURE__ */
|
|
3577
|
+
return /* @__PURE__ */ jsxs12("div", { children: [
|
|
3578
|
+
/* @__PURE__ */ jsxs12("div", { style: { marginBottom: 20 }, children: [
|
|
3579
|
+
/* @__PURE__ */ jsx13(
|
|
3517
3580
|
"div",
|
|
3518
3581
|
{
|
|
3519
3582
|
style: {
|
|
@@ -3525,9 +3588,9 @@ function ComposeMessageScreen({ nav }) {
|
|
|
3525
3588
|
children: "New Message"
|
|
3526
3589
|
}
|
|
3527
3590
|
),
|
|
3528
|
-
/* @__PURE__ */
|
|
3591
|
+
/* @__PURE__ */ jsx13("div", { style: { fontSize: 14, color: colors.textMuted }, children: "Send a message to the QA team" })
|
|
3529
3592
|
] }),
|
|
3530
|
-
/* @__PURE__ */
|
|
3593
|
+
/* @__PURE__ */ jsxs12(
|
|
3531
3594
|
"div",
|
|
3532
3595
|
{
|
|
3533
3596
|
style: {
|
|
@@ -3537,7 +3600,7 @@ function ComposeMessageScreen({ nav }) {
|
|
|
3537
3600
|
border: `1px solid ${colors.border}`
|
|
3538
3601
|
},
|
|
3539
3602
|
children: [
|
|
3540
|
-
/* @__PURE__ */
|
|
3603
|
+
/* @__PURE__ */ jsx13(
|
|
3541
3604
|
"label",
|
|
3542
3605
|
{
|
|
3543
3606
|
style: {
|
|
@@ -3550,7 +3613,7 @@ function ComposeMessageScreen({ nav }) {
|
|
|
3550
3613
|
children: "Subject"
|
|
3551
3614
|
}
|
|
3552
3615
|
),
|
|
3553
|
-
/* @__PURE__ */
|
|
3616
|
+
/* @__PURE__ */ jsx13(
|
|
3554
3617
|
"input",
|
|
3555
3618
|
{
|
|
3556
3619
|
type: "text",
|
|
@@ -3565,7 +3628,7 @@ function ComposeMessageScreen({ nav }) {
|
|
|
3565
3628
|
}
|
|
3566
3629
|
}
|
|
3567
3630
|
),
|
|
3568
|
-
/* @__PURE__ */
|
|
3631
|
+
/* @__PURE__ */ jsx13(
|
|
3569
3632
|
"label",
|
|
3570
3633
|
{
|
|
3571
3634
|
style: {
|
|
@@ -3579,7 +3642,7 @@ function ComposeMessageScreen({ nav }) {
|
|
|
3579
3642
|
children: "Message"
|
|
3580
3643
|
}
|
|
3581
3644
|
),
|
|
3582
|
-
/* @__PURE__ */
|
|
3645
|
+
/* @__PURE__ */ jsx13(
|
|
3583
3646
|
"textarea",
|
|
3584
3647
|
{
|
|
3585
3648
|
value: message,
|
|
@@ -3598,7 +3661,7 @@ function ComposeMessageScreen({ nav }) {
|
|
|
3598
3661
|
}
|
|
3599
3662
|
}
|
|
3600
3663
|
),
|
|
3601
|
-
/* @__PURE__ */
|
|
3664
|
+
/* @__PURE__ */ jsx13(
|
|
3602
3665
|
ImagePickerButtons,
|
|
3603
3666
|
{
|
|
3604
3667
|
images: images.images,
|
|
@@ -3609,7 +3672,7 @@ function ComposeMessageScreen({ nav }) {
|
|
|
3609
3672
|
label: "Attachments (optional)"
|
|
3610
3673
|
}
|
|
3611
3674
|
),
|
|
3612
|
-
/* @__PURE__ */
|
|
3675
|
+
/* @__PURE__ */ jsx13(
|
|
3613
3676
|
"button",
|
|
3614
3677
|
{
|
|
3615
3678
|
style: {
|
|
@@ -3638,7 +3701,7 @@ function ComposeMessageScreen({ nav }) {
|
|
|
3638
3701
|
|
|
3639
3702
|
// src/widget/screens/ProfileScreen.tsx
|
|
3640
3703
|
import { useState as useState9, useEffect as useEffect6 } from "react";
|
|
3641
|
-
import { jsx as
|
|
3704
|
+
import { jsx as jsx14, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
3642
3705
|
function ProfileScreen({ nav }) {
|
|
3643
3706
|
const { testerInfo, assignments, updateTesterProfile, refreshTesterInfo } = useBugBear();
|
|
3644
3707
|
const [editing, setEditing] = useState9(false);
|
|
@@ -3684,22 +3747,22 @@ function ProfileScreen({ nav }) {
|
|
|
3684
3747
|
}
|
|
3685
3748
|
};
|
|
3686
3749
|
if (saved) {
|
|
3687
|
-
return /* @__PURE__ */
|
|
3688
|
-
/* @__PURE__ */
|
|
3689
|
-
/* @__PURE__ */
|
|
3750
|
+
return /* @__PURE__ */ jsxs13("div", { style: styles4.emptyState, children: [
|
|
3751
|
+
/* @__PURE__ */ jsx14("span", { style: styles4.emptyEmoji, children: "\u2705" }),
|
|
3752
|
+
/* @__PURE__ */ jsx14("span", { style: styles4.emptyTitle, children: "Profile saved!" })
|
|
3690
3753
|
] });
|
|
3691
3754
|
}
|
|
3692
3755
|
if (!testerInfo) {
|
|
3693
|
-
return /* @__PURE__ */
|
|
3694
|
-
/* @__PURE__ */
|
|
3695
|
-
/* @__PURE__ */
|
|
3756
|
+
return /* @__PURE__ */ jsxs13("div", { style: styles4.emptyState, children: [
|
|
3757
|
+
/* @__PURE__ */ jsx14("span", { style: styles4.emptyEmoji, children: "\u{1F464}" }),
|
|
3758
|
+
/* @__PURE__ */ jsx14("span", { style: styles4.emptyTitle, children: "No profile found" })
|
|
3696
3759
|
] });
|
|
3697
3760
|
}
|
|
3698
3761
|
if (editing) {
|
|
3699
|
-
return /* @__PURE__ */
|
|
3700
|
-
/* @__PURE__ */
|
|
3701
|
-
/* @__PURE__ */
|
|
3702
|
-
/* @__PURE__ */
|
|
3762
|
+
return /* @__PURE__ */ jsxs13("div", { children: [
|
|
3763
|
+
/* @__PURE__ */ jsxs13("div", { style: styles4.editHeader, children: [
|
|
3764
|
+
/* @__PURE__ */ jsx14("span", { style: styles4.editTitle, children: "Edit Profile" }),
|
|
3765
|
+
/* @__PURE__ */ jsx14(
|
|
3703
3766
|
"button",
|
|
3704
3767
|
{
|
|
3705
3768
|
style: styles4.cancelButton,
|
|
@@ -3711,9 +3774,9 @@ function ProfileScreen({ nav }) {
|
|
|
3711
3774
|
}
|
|
3712
3775
|
)
|
|
3713
3776
|
] }),
|
|
3714
|
-
/* @__PURE__ */
|
|
3715
|
-
/* @__PURE__ */
|
|
3716
|
-
/* @__PURE__ */
|
|
3777
|
+
/* @__PURE__ */ jsxs13("div", { style: styles4.field, children: [
|
|
3778
|
+
/* @__PURE__ */ jsx14("label", { style: styles4.label, children: "Name" }),
|
|
3779
|
+
/* @__PURE__ */ jsx14(
|
|
3717
3780
|
"input",
|
|
3718
3781
|
{
|
|
3719
3782
|
style: styles4.input,
|
|
@@ -3723,15 +3786,15 @@ function ProfileScreen({ nav }) {
|
|
|
3723
3786
|
}
|
|
3724
3787
|
)
|
|
3725
3788
|
] }),
|
|
3726
|
-
/* @__PURE__ */
|
|
3727
|
-
/* @__PURE__ */
|
|
3728
|
-
/* @__PURE__ */
|
|
3789
|
+
/* @__PURE__ */ jsxs13("div", { style: styles4.field, children: [
|
|
3790
|
+
/* @__PURE__ */ jsx14("label", { style: styles4.label, children: "Primary Email" }),
|
|
3791
|
+
/* @__PURE__ */ jsx14("span", { style: styles4.emailFixed, children: testerInfo.email })
|
|
3729
3792
|
] }),
|
|
3730
|
-
/* @__PURE__ */
|
|
3731
|
-
/* @__PURE__ */
|
|
3732
|
-
additionalEmails.map((email) => /* @__PURE__ */
|
|
3733
|
-
/* @__PURE__ */
|
|
3734
|
-
/* @__PURE__ */
|
|
3793
|
+
/* @__PURE__ */ jsxs13("div", { style: styles4.field, children: [
|
|
3794
|
+
/* @__PURE__ */ jsx14("label", { style: styles4.label, children: "Additional Emails" }),
|
|
3795
|
+
additionalEmails.map((email) => /* @__PURE__ */ jsxs13("div", { style: styles4.emailRow, children: [
|
|
3796
|
+
/* @__PURE__ */ jsx14("span", { style: styles4.emailText, children: email }),
|
|
3797
|
+
/* @__PURE__ */ jsx14(
|
|
3735
3798
|
"button",
|
|
3736
3799
|
{
|
|
3737
3800
|
style: styles4.removeEmailButton,
|
|
@@ -3740,8 +3803,8 @@ function ProfileScreen({ nav }) {
|
|
|
3740
3803
|
}
|
|
3741
3804
|
)
|
|
3742
3805
|
] }, email)),
|
|
3743
|
-
/* @__PURE__ */
|
|
3744
|
-
/* @__PURE__ */
|
|
3806
|
+
/* @__PURE__ */ jsxs13("div", { style: styles4.addEmailRow, children: [
|
|
3807
|
+
/* @__PURE__ */ jsx14(
|
|
3745
3808
|
"input",
|
|
3746
3809
|
{
|
|
3747
3810
|
style: { ...styles4.input, flex: 1, marginRight: 8 },
|
|
@@ -3754,18 +3817,18 @@ function ProfileScreen({ nav }) {
|
|
|
3754
3817
|
}
|
|
3755
3818
|
}
|
|
3756
3819
|
),
|
|
3757
|
-
/* @__PURE__ */
|
|
3820
|
+
/* @__PURE__ */ jsx14("button", { style: styles4.addButton, onClick: handleAddEmail, children: "Add" })
|
|
3758
3821
|
] })
|
|
3759
3822
|
] }),
|
|
3760
|
-
/* @__PURE__ */
|
|
3761
|
-
/* @__PURE__ */
|
|
3762
|
-
/* @__PURE__ */
|
|
3823
|
+
/* @__PURE__ */ jsxs13("div", { style: styles4.field, children: [
|
|
3824
|
+
/* @__PURE__ */ jsx14("label", { style: styles4.label, children: "Testing Platforms" }),
|
|
3825
|
+
/* @__PURE__ */ jsx14("div", { style: styles4.platformRow, children: [
|
|
3763
3826
|
{ key: "ios", label: "\u{1F4F1} iOS" },
|
|
3764
3827
|
{ key: "android", label: "\u{1F916} Android" },
|
|
3765
3828
|
{ key: "web", label: "\u{1F310} Web" }
|
|
3766
3829
|
].map(({ key, label }) => {
|
|
3767
3830
|
const isActive = platforms.includes(key);
|
|
3768
|
-
return /* @__PURE__ */
|
|
3831
|
+
return /* @__PURE__ */ jsx14(
|
|
3769
3832
|
"button",
|
|
3770
3833
|
{
|
|
3771
3834
|
style: {
|
|
@@ -3775,13 +3838,13 @@ function ProfileScreen({ nav }) {
|
|
|
3775
3838
|
onClick: () => setPlatforms(
|
|
3776
3839
|
(prev) => prev.includes(key) ? prev.filter((p) => p !== key) : [...prev, key]
|
|
3777
3840
|
),
|
|
3778
|
-
children: /* @__PURE__ */
|
|
3841
|
+
children: /* @__PURE__ */ jsx14("span", { style: isActive ? styles4.platformTextActive : styles4.platformText, children: label })
|
|
3779
3842
|
},
|
|
3780
3843
|
key
|
|
3781
3844
|
);
|
|
3782
3845
|
}) })
|
|
3783
3846
|
] }),
|
|
3784
|
-
/* @__PURE__ */
|
|
3847
|
+
/* @__PURE__ */ jsx14(
|
|
3785
3848
|
"button",
|
|
3786
3849
|
{
|
|
3787
3850
|
style: { ...styles4.primaryButton, marginTop: 20 },
|
|
@@ -3792,45 +3855,45 @@ function ProfileScreen({ nav }) {
|
|
|
3792
3855
|
)
|
|
3793
3856
|
] });
|
|
3794
3857
|
}
|
|
3795
|
-
return /* @__PURE__ */
|
|
3796
|
-
/* @__PURE__ */
|
|
3797
|
-
/* @__PURE__ */
|
|
3798
|
-
/* @__PURE__ */
|
|
3799
|
-
/* @__PURE__ */
|
|
3858
|
+
return /* @__PURE__ */ jsxs13("div", { children: [
|
|
3859
|
+
/* @__PURE__ */ jsxs13("div", { style: styles4.profileCard, children: [
|
|
3860
|
+
/* @__PURE__ */ jsx14("div", { style: styles4.avatar, children: /* @__PURE__ */ jsx14("span", { style: styles4.avatarText, children: testerInfo.name.charAt(0).toUpperCase() }) }),
|
|
3861
|
+
/* @__PURE__ */ jsx14("span", { style: styles4.profileName, children: testerInfo.name }),
|
|
3862
|
+
/* @__PURE__ */ jsx14("span", { style: styles4.profileEmail, children: testerInfo.email })
|
|
3800
3863
|
] }),
|
|
3801
|
-
/* @__PURE__ */
|
|
3802
|
-
/* @__PURE__ */
|
|
3803
|
-
/* @__PURE__ */
|
|
3804
|
-
/* @__PURE__ */
|
|
3864
|
+
/* @__PURE__ */ jsxs13("div", { style: styles4.statsRow, children: [
|
|
3865
|
+
/* @__PURE__ */ jsxs13("div", { style: styles4.statItem, children: [
|
|
3866
|
+
/* @__PURE__ */ jsx14("span", { style: styles4.statNumber, children: completedCount }),
|
|
3867
|
+
/* @__PURE__ */ jsx14("span", { style: styles4.statLabel, children: "Completed" })
|
|
3805
3868
|
] }),
|
|
3806
|
-
/* @__PURE__ */
|
|
3807
|
-
/* @__PURE__ */
|
|
3808
|
-
/* @__PURE__ */
|
|
3809
|
-
/* @__PURE__ */
|
|
3869
|
+
/* @__PURE__ */ jsx14("div", { style: styles4.statDivider }),
|
|
3870
|
+
/* @__PURE__ */ jsxs13("div", { style: styles4.statItem, children: [
|
|
3871
|
+
/* @__PURE__ */ jsx14("span", { style: styles4.statNumber, children: assignments.length }),
|
|
3872
|
+
/* @__PURE__ */ jsx14("span", { style: styles4.statLabel, children: "Total Assigned" })
|
|
3810
3873
|
] })
|
|
3811
3874
|
] }),
|
|
3812
|
-
/* @__PURE__ */
|
|
3875
|
+
/* @__PURE__ */ jsx14(
|
|
3813
3876
|
"button",
|
|
3814
3877
|
{
|
|
3815
3878
|
style: styles4.detailsToggle,
|
|
3816
3879
|
onClick: () => setShowDetails(!showDetails),
|
|
3817
|
-
children: /* @__PURE__ */
|
|
3880
|
+
children: /* @__PURE__ */ jsxs13("span", { style: styles4.detailsToggleText, children: [
|
|
3818
3881
|
showDetails ? "\u25BC" : "\u25B6",
|
|
3819
3882
|
" Details"
|
|
3820
3883
|
] })
|
|
3821
3884
|
}
|
|
3822
3885
|
),
|
|
3823
|
-
showDetails && /* @__PURE__ */
|
|
3824
|
-
additionalEmails.length > 0 && /* @__PURE__ */
|
|
3825
|
-
/* @__PURE__ */
|
|
3826
|
-
additionalEmails.map((e) => /* @__PURE__ */
|
|
3886
|
+
showDetails && /* @__PURE__ */ jsxs13("div", { style: styles4.detailsSection, children: [
|
|
3887
|
+
additionalEmails.length > 0 && /* @__PURE__ */ jsxs13("div", { style: styles4.detailBlock, children: [
|
|
3888
|
+
/* @__PURE__ */ jsx14("span", { style: styles4.detailLabel, children: "Additional Emails" }),
|
|
3889
|
+
additionalEmails.map((e) => /* @__PURE__ */ jsx14("span", { style: styles4.detailValue, children: e }, e))
|
|
3827
3890
|
] }),
|
|
3828
|
-
platforms.length > 0 && /* @__PURE__ */
|
|
3829
|
-
/* @__PURE__ */
|
|
3830
|
-
/* @__PURE__ */
|
|
3891
|
+
platforms.length > 0 && /* @__PURE__ */ jsxs13("div", { style: styles4.detailBlock, children: [
|
|
3892
|
+
/* @__PURE__ */ jsx14("span", { style: styles4.detailLabel, children: "Platforms" }),
|
|
3893
|
+
/* @__PURE__ */ jsx14("div", { style: styles4.platformTags, children: platforms.map((p) => /* @__PURE__ */ jsx14("span", { style: styles4.platformTag, children: /* @__PURE__ */ jsx14("span", { style: styles4.platformTagText, children: p === "ios" ? "\u{1F4F1} iOS" : p === "android" ? "\u{1F916} Android" : "\u{1F310} Web" }) }, p)) })
|
|
3831
3894
|
] })
|
|
3832
3895
|
] }),
|
|
3833
|
-
/* @__PURE__ */
|
|
3896
|
+
/* @__PURE__ */ jsx14(
|
|
3834
3897
|
"button",
|
|
3835
3898
|
{
|
|
3836
3899
|
style: { ...styles4.primaryButton, marginTop: 20 },
|
|
@@ -4114,7 +4177,7 @@ var styles4 = {
|
|
|
4114
4177
|
|
|
4115
4178
|
// src/widget/screens/IssueListScreen.tsx
|
|
4116
4179
|
import { useState as useState10, useEffect as useEffect7 } from "react";
|
|
4117
|
-
import { jsx as
|
|
4180
|
+
import { jsx as jsx15, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
4118
4181
|
var CATEGORY_CONFIG = {
|
|
4119
4182
|
open: { label: "Open Issues", accent: "#f97316", emptyIcon: "\u2705", emptyText: "No open issues" },
|
|
4120
4183
|
done: { label: "Done", accent: "#22c55e", emptyIcon: "\u{1F389}", emptyText: "No completed issues yet" },
|
|
@@ -4147,15 +4210,15 @@ function IssueListScreen({ nav, category }) {
|
|
|
4147
4210
|
};
|
|
4148
4211
|
}, [client, category]);
|
|
4149
4212
|
if (loading) {
|
|
4150
|
-
return /* @__PURE__ */
|
|
4213
|
+
return /* @__PURE__ */ jsx15("div", { style: { padding: "40px 0", textAlign: "center" }, children: /* @__PURE__ */ jsx15("div", { style: { color: colors.textMuted, fontSize: 14 }, children: "Loading..." }) });
|
|
4151
4214
|
}
|
|
4152
4215
|
if (issues.length === 0) {
|
|
4153
|
-
return /* @__PURE__ */
|
|
4154
|
-
/* @__PURE__ */
|
|
4155
|
-
/* @__PURE__ */
|
|
4216
|
+
return /* @__PURE__ */ jsxs14("div", { style: { padding: "40px 0", textAlign: "center" }, children: [
|
|
4217
|
+
/* @__PURE__ */ jsx15("div", { style: { fontSize: 36, marginBottom: 8 }, children: config.emptyIcon }),
|
|
4218
|
+
/* @__PURE__ */ jsx15("div", { style: { color: colors.textMuted, fontSize: 14 }, children: config.emptyText })
|
|
4156
4219
|
] });
|
|
4157
4220
|
}
|
|
4158
|
-
return /* @__PURE__ */
|
|
4221
|
+
return /* @__PURE__ */ jsx15("div", { children: issues.map((issue) => /* @__PURE__ */ jsxs14(
|
|
4159
4222
|
"div",
|
|
4160
4223
|
{
|
|
4161
4224
|
role: "button",
|
|
@@ -4174,8 +4237,8 @@ function IssueListScreen({ nav, category }) {
|
|
|
4174
4237
|
userSelect: "none"
|
|
4175
4238
|
},
|
|
4176
4239
|
children: [
|
|
4177
|
-
/* @__PURE__ */
|
|
4178
|
-
issue.severity && /* @__PURE__ */
|
|
4240
|
+
/* @__PURE__ */ jsxs14("div", { style: { display: "flex", alignItems: "flex-start", gap: 8 }, children: [
|
|
4241
|
+
issue.severity && /* @__PURE__ */ jsx15(
|
|
4179
4242
|
"span",
|
|
4180
4243
|
{
|
|
4181
4244
|
style: {
|
|
@@ -4188,7 +4251,7 @@ function IssueListScreen({ nav, category }) {
|
|
|
4188
4251
|
}
|
|
4189
4252
|
}
|
|
4190
4253
|
),
|
|
4191
|
-
/* @__PURE__ */
|
|
4254
|
+
/* @__PURE__ */ jsx15("span", { style: {
|
|
4192
4255
|
fontSize: 13,
|
|
4193
4256
|
fontWeight: 600,
|
|
4194
4257
|
color: colors.textPrimary,
|
|
@@ -4198,11 +4261,11 @@ function IssueListScreen({ nav, category }) {
|
|
|
4198
4261
|
whiteSpace: "nowrap"
|
|
4199
4262
|
}, children: issue.title })
|
|
4200
4263
|
] }),
|
|
4201
|
-
/* @__PURE__ */
|
|
4202
|
-
issue.route && /* @__PURE__ */
|
|
4203
|
-
/* @__PURE__ */
|
|
4264
|
+
/* @__PURE__ */ jsxs14("div", { style: { display: "flex", justifyContent: "space-between", marginTop: 6 }, children: [
|
|
4265
|
+
issue.route && /* @__PURE__ */ jsx15("span", { style: { fontSize: 11, color: colors.textDim, maxWidth: "60%", overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }, children: issue.route }),
|
|
4266
|
+
/* @__PURE__ */ jsx15("span", { style: { fontSize: 11, color: colors.textDim, marginLeft: "auto" }, children: formatRelativeTime(issue.updatedAt) })
|
|
4204
4267
|
] }),
|
|
4205
|
-
category === "done" && issue.verifiedByName && /* @__PURE__ */
|
|
4268
|
+
category === "done" && issue.verifiedByName && /* @__PURE__ */ jsxs14("div", { style: {
|
|
4206
4269
|
display: "inline-flex",
|
|
4207
4270
|
alignItems: "center",
|
|
4208
4271
|
gap: 4,
|
|
@@ -4218,7 +4281,7 @@ function IssueListScreen({ nav, category }) {
|
|
|
4218
4281
|
"\u2714 Verified by ",
|
|
4219
4282
|
issue.verifiedByName
|
|
4220
4283
|
] }),
|
|
4221
|
-
category === "reopened" && issue.originalBugTitle && /* @__PURE__ */
|
|
4284
|
+
category === "reopened" && issue.originalBugTitle && /* @__PURE__ */ jsxs14("div", { style: {
|
|
4222
4285
|
display: "inline-flex",
|
|
4223
4286
|
alignItems: "center",
|
|
4224
4287
|
gap: 4,
|
|
@@ -4245,7 +4308,7 @@ function IssueListScreen({ nav, category }) {
|
|
|
4245
4308
|
}
|
|
4246
4309
|
|
|
4247
4310
|
// src/widget/screens/IssueDetailScreen.tsx
|
|
4248
|
-
import { jsx as
|
|
4311
|
+
import { jsx as jsx16, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
4249
4312
|
var STATUS_LABELS = {
|
|
4250
4313
|
new: { label: "New", bg: "#1e3a5f", color: "#60a5fa" },
|
|
4251
4314
|
triaging: { label: "Triaging", bg: "#1e3a5f", color: "#60a5fa" },
|
|
@@ -4269,9 +4332,9 @@ var SEVERITY_CONFIG = {
|
|
|
4269
4332
|
function IssueDetailScreen({ nav, issue }) {
|
|
4270
4333
|
const statusConfig = STATUS_LABELS[issue.status] || { label: issue.status, bg: "#27272a", color: "#a1a1aa" };
|
|
4271
4334
|
const severityConfig = issue.severity ? SEVERITY_CONFIG[issue.severity] : null;
|
|
4272
|
-
return /* @__PURE__ */
|
|
4273
|
-
/* @__PURE__ */
|
|
4274
|
-
/* @__PURE__ */
|
|
4335
|
+
return /* @__PURE__ */ jsxs15("div", { children: [
|
|
4336
|
+
/* @__PURE__ */ jsxs15("div", { style: { display: "flex", gap: 8, flexWrap: "wrap", marginBottom: 12 }, children: [
|
|
4337
|
+
/* @__PURE__ */ jsx16("span", { style: {
|
|
4275
4338
|
backgroundColor: statusConfig.bg,
|
|
4276
4339
|
color: statusConfig.color,
|
|
4277
4340
|
fontSize: 11,
|
|
@@ -4279,7 +4342,7 @@ function IssueDetailScreen({ nav, issue }) {
|
|
|
4279
4342
|
padding: "3px 10px",
|
|
4280
4343
|
borderRadius: 6
|
|
4281
4344
|
}, children: statusConfig.label }),
|
|
4282
|
-
severityConfig && /* @__PURE__ */
|
|
4345
|
+
severityConfig && /* @__PURE__ */ jsx16("span", { style: {
|
|
4283
4346
|
backgroundColor: severityConfig.bg,
|
|
4284
4347
|
color: severityConfig.color,
|
|
4285
4348
|
fontSize: 11,
|
|
@@ -4288,9 +4351,9 @@ function IssueDetailScreen({ nav, issue }) {
|
|
|
4288
4351
|
borderRadius: 6
|
|
4289
4352
|
}, children: severityConfig.label })
|
|
4290
4353
|
] }),
|
|
4291
|
-
/* @__PURE__ */
|
|
4292
|
-
issue.route && /* @__PURE__ */
|
|
4293
|
-
issue.description && /* @__PURE__ */
|
|
4354
|
+
/* @__PURE__ */ jsx16("h3", { style: { fontSize: 16, fontWeight: 700, color: colors.textPrimary, margin: "0 0 8px 0", lineHeight: 1.3 }, children: issue.title }),
|
|
4355
|
+
issue.route && /* @__PURE__ */ jsx16("div", { style: { fontSize: 12, color: colors.textDim, marginBottom: 12 }, children: issue.route }),
|
|
4356
|
+
issue.description && /* @__PURE__ */ jsx16("div", { style: {
|
|
4294
4357
|
backgroundColor: colors.card,
|
|
4295
4358
|
border: `1px solid ${colors.border}`,
|
|
4296
4359
|
borderRadius: 8,
|
|
@@ -4302,56 +4365,56 @@ function IssueDetailScreen({ nav, issue }) {
|
|
|
4302
4365
|
whiteSpace: "pre-wrap",
|
|
4303
4366
|
wordBreak: "break-word"
|
|
4304
4367
|
}, children: issue.description }),
|
|
4305
|
-
issue.verifiedByName && /* @__PURE__ */
|
|
4368
|
+
issue.verifiedByName && /* @__PURE__ */ jsxs15("div", { style: {
|
|
4306
4369
|
backgroundColor: "#14532d",
|
|
4307
4370
|
border: "1px solid #166534",
|
|
4308
4371
|
borderRadius: 8,
|
|
4309
4372
|
padding: 12,
|
|
4310
4373
|
marginBottom: 12
|
|
4311
4374
|
}, children: [
|
|
4312
|
-
/* @__PURE__ */
|
|
4313
|
-
/* @__PURE__ */
|
|
4314
|
-
/* @__PURE__ */
|
|
4375
|
+
/* @__PURE__ */ jsxs15("div", { style: { display: "flex", alignItems: "center", gap: 8, marginBottom: 4 }, children: [
|
|
4376
|
+
/* @__PURE__ */ jsx16("span", { style: { fontSize: 16 }, children: "\u2705" }),
|
|
4377
|
+
/* @__PURE__ */ jsx16("span", { style: { fontSize: 13, fontWeight: 600, color: "#4ade80" }, children: "Retesting Proof" })
|
|
4315
4378
|
] }),
|
|
4316
|
-
/* @__PURE__ */
|
|
4379
|
+
/* @__PURE__ */ jsxs15("div", { style: { fontSize: 12, color: "#86efac" }, children: [
|
|
4317
4380
|
"Verified by ",
|
|
4318
|
-
/* @__PURE__ */
|
|
4319
|
-
issue.verifiedAt && /* @__PURE__ */
|
|
4381
|
+
/* @__PURE__ */ jsx16("strong", { children: issue.verifiedByName }),
|
|
4382
|
+
issue.verifiedAt && /* @__PURE__ */ jsxs15("span", { children: [
|
|
4320
4383
|
" on ",
|
|
4321
4384
|
new Date(issue.verifiedAt).toLocaleDateString(void 0, { month: "short", day: "numeric", year: "numeric" })
|
|
4322
4385
|
] })
|
|
4323
4386
|
] })
|
|
4324
4387
|
] }),
|
|
4325
|
-
issue.originalBugTitle && /* @__PURE__ */
|
|
4388
|
+
issue.originalBugTitle && /* @__PURE__ */ jsxs15("div", { style: {
|
|
4326
4389
|
backgroundColor: "#422006",
|
|
4327
4390
|
border: "1px solid #854d0e",
|
|
4328
4391
|
borderRadius: 8,
|
|
4329
4392
|
padding: 12,
|
|
4330
4393
|
marginBottom: 12
|
|
4331
4394
|
}, children: [
|
|
4332
|
-
/* @__PURE__ */
|
|
4333
|
-
/* @__PURE__ */
|
|
4334
|
-
/* @__PURE__ */
|
|
4395
|
+
/* @__PURE__ */ jsxs15("div", { style: { display: "flex", alignItems: "center", gap: 8, marginBottom: 4 }, children: [
|
|
4396
|
+
/* @__PURE__ */ jsx16("span", { style: { fontSize: 16 }, children: "\u{1F504}" }),
|
|
4397
|
+
/* @__PURE__ */ jsx16("span", { style: { fontSize: 13, fontWeight: 600, color: "#fbbf24" }, children: "Original Bug" })
|
|
4335
4398
|
] }),
|
|
4336
|
-
/* @__PURE__ */
|
|
4399
|
+
/* @__PURE__ */ jsxs15("div", { style: { fontSize: 12, color: "#fde68a" }, children: [
|
|
4337
4400
|
"Retest of: ",
|
|
4338
|
-
/* @__PURE__ */
|
|
4401
|
+
/* @__PURE__ */ jsx16("strong", { children: issue.originalBugTitle })
|
|
4339
4402
|
] })
|
|
4340
4403
|
] }),
|
|
4341
|
-
issue.screenshotUrls && issue.screenshotUrls.length > 0 && /* @__PURE__ */
|
|
4342
|
-
/* @__PURE__ */
|
|
4404
|
+
issue.screenshotUrls && issue.screenshotUrls.length > 0 && /* @__PURE__ */ jsxs15("div", { style: { marginBottom: 12 }, children: [
|
|
4405
|
+
/* @__PURE__ */ jsxs15("div", { style: { fontSize: 12, fontWeight: 600, color: colors.textMuted, marginBottom: 8 }, children: [
|
|
4343
4406
|
"Screenshots (",
|
|
4344
4407
|
issue.screenshotUrls.length,
|
|
4345
4408
|
")"
|
|
4346
4409
|
] }),
|
|
4347
|
-
/* @__PURE__ */
|
|
4410
|
+
/* @__PURE__ */ jsx16("div", { style: { display: "flex", gap: 8, overflowX: "auto" }, children: issue.screenshotUrls.map((url, i) => /* @__PURE__ */ jsx16(
|
|
4348
4411
|
"a",
|
|
4349
4412
|
{
|
|
4350
4413
|
href: url,
|
|
4351
4414
|
target: "_blank",
|
|
4352
4415
|
rel: "noopener noreferrer",
|
|
4353
4416
|
style: { flexShrink: 0 },
|
|
4354
|
-
children: /* @__PURE__ */
|
|
4417
|
+
children: /* @__PURE__ */ jsx16(
|
|
4355
4418
|
"img",
|
|
4356
4419
|
{
|
|
4357
4420
|
src: url,
|
|
@@ -4369,16 +4432,16 @@ function IssueDetailScreen({ nav, issue }) {
|
|
|
4369
4432
|
i
|
|
4370
4433
|
)) })
|
|
4371
4434
|
] }),
|
|
4372
|
-
/* @__PURE__ */
|
|
4435
|
+
/* @__PURE__ */ jsxs15("div", { style: {
|
|
4373
4436
|
borderTop: `1px solid ${colors.border}`,
|
|
4374
4437
|
paddingTop: 12,
|
|
4375
4438
|
marginTop: 4
|
|
4376
4439
|
}, children: [
|
|
4377
|
-
issue.reporterName && /* @__PURE__ */
|
|
4440
|
+
issue.reporterName && /* @__PURE__ */ jsxs15("div", { style: { fontSize: 12, color: colors.textDim, marginBottom: 4 }, children: [
|
|
4378
4441
|
"Reported by ",
|
|
4379
4442
|
issue.reporterName
|
|
4380
4443
|
] }),
|
|
4381
|
-
/* @__PURE__ */
|
|
4444
|
+
/* @__PURE__ */ jsxs15("div", { style: { fontSize: 11, color: colors.textDim }, children: [
|
|
4382
4445
|
"Created ",
|
|
4383
4446
|
formatRelativeTime(issue.createdAt),
|
|
4384
4447
|
" \xB7 Updated ",
|
|
@@ -4392,9 +4455,9 @@ function IssueDetailScreen({ nav, issue }) {
|
|
|
4392
4455
|
var BUGBEAR_LOGO_BASE64 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAAAXNSR0IArs4c6QAAAJhlWElmTU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAIdpAAQAAAABAAAATgAAAAAAAABIAAAAAQAAAEgAAAABAASQBAACAAAAFAAAAISgAQADAAAAAQABAACgAgAEAAAAAQAAAGCgAwAEAAAAAQAAAGAAAAAAMjAyNjowMToyNCAxNjoyMTozOABbbVCuAAAACXBIWXMAAAsTAAALEwEAmpwYAAACo2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNi4wLjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpJcHRjNHhtcEV4dD0iaHR0cDovL2lwdGMub3JnL3N0ZC9JcHRjNHhtcEV4dC8yMDA4LTAyLTI5LyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIj4KICAgICAgICAgPElwdGM0eG1wRXh0OkRpZ2l0YWxTb3VyY2VUeXBlPmh0dHA6Ly9jdi5pcHRjLm9yZy9uZXdzY29kZXMvZGlnaXRhbHNvdXJjZXR5cGUvdHJhaW5lZEFsZ29yaXRobWljTWVkaWE8L0lwdGM0eG1wRXh0OkRpZ2l0YWxTb3VyY2VUeXBlPgogICAgICAgICA8SXB0YzR4bXBFeHQ6RGlnSW1hZ2VHVUlEPmZjNzJlN2Q2LTYyYTEtNDE1ZS04MjY5LWM2NjA4MjY0OWRiMDwvSXB0YzR4bXBFeHQ6RGlnSW1hZ2VHVUlEPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAyNi0wMS0yNFQxNjoyMTozODwveG1wOkNyZWF0ZURhdGU+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+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";
|
|
4393
4456
|
|
|
4394
4457
|
// src/BugBearPanel.tsx
|
|
4395
|
-
import { Fragment as Fragment4, jsx as
|
|
4458
|
+
import { Fragment as Fragment4, jsx as jsx17, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
4396
4459
|
function BugBearIcon({ size = 24 }) {
|
|
4397
|
-
return /* @__PURE__ */
|
|
4460
|
+
return /* @__PURE__ */ jsx17(
|
|
4398
4461
|
"img",
|
|
4399
4462
|
{
|
|
4400
4463
|
src: BUGBEAR_LOGO_BASE64,
|
|
@@ -4559,37 +4622,37 @@ function BugBearPanel({
|
|
|
4559
4622
|
const renderScreen = () => {
|
|
4560
4623
|
switch (currentScreen.name) {
|
|
4561
4624
|
case "HOME":
|
|
4562
|
-
return /* @__PURE__ */
|
|
4625
|
+
return /* @__PURE__ */ jsx17(HomeScreen, { nav });
|
|
4563
4626
|
case "TEST_DETAIL":
|
|
4564
|
-
return /* @__PURE__ */
|
|
4627
|
+
return /* @__PURE__ */ jsx17(TestDetailScreen, { testId: currentScreen.testId, nav });
|
|
4565
4628
|
case "TEST_LIST":
|
|
4566
|
-
return /* @__PURE__ */
|
|
4629
|
+
return /* @__PURE__ */ jsx17(TestListScreen, { nav });
|
|
4567
4630
|
case "TEST_FEEDBACK":
|
|
4568
|
-
return /* @__PURE__ */
|
|
4631
|
+
return /* @__PURE__ */ jsx17(TestFeedbackScreen, { status: currentScreen.status, assignmentId: currentScreen.assignmentId, nav });
|
|
4569
4632
|
case "REPORT":
|
|
4570
|
-
return /* @__PURE__ */
|
|
4633
|
+
return /* @__PURE__ */ jsx17(ReportScreen, { nav, prefill: currentScreen.prefill });
|
|
4571
4634
|
case "REPORT_SUCCESS":
|
|
4572
|
-
return /* @__PURE__ */
|
|
4635
|
+
return /* @__PURE__ */ jsx17(ReportSuccessScreen, { nav });
|
|
4573
4636
|
case "MESSAGE_LIST":
|
|
4574
|
-
return /* @__PURE__ */
|
|
4637
|
+
return /* @__PURE__ */ jsx17(MessageListScreen, { nav });
|
|
4575
4638
|
case "THREAD_DETAIL":
|
|
4576
|
-
return /* @__PURE__ */
|
|
4639
|
+
return /* @__PURE__ */ jsx17(ThreadDetailScreen, { thread: currentScreen.thread, nav });
|
|
4577
4640
|
case "COMPOSE_MESSAGE":
|
|
4578
|
-
return /* @__PURE__ */
|
|
4641
|
+
return /* @__PURE__ */ jsx17(ComposeMessageScreen, { nav });
|
|
4579
4642
|
case "ISSUE_LIST":
|
|
4580
|
-
return /* @__PURE__ */
|
|
4643
|
+
return /* @__PURE__ */ jsx17(IssueListScreen, { nav, category: currentScreen.category });
|
|
4581
4644
|
case "ISSUE_DETAIL":
|
|
4582
|
-
return /* @__PURE__ */
|
|
4645
|
+
return /* @__PURE__ */ jsx17(IssueDetailScreen, { nav, issue: currentScreen.issue });
|
|
4583
4646
|
case "PROFILE":
|
|
4584
|
-
return /* @__PURE__ */
|
|
4647
|
+
return /* @__PURE__ */ jsx17(ProfileScreen, { nav });
|
|
4585
4648
|
default:
|
|
4586
|
-
return /* @__PURE__ */
|
|
4649
|
+
return /* @__PURE__ */ jsx17(HomeScreen, { nav });
|
|
4587
4650
|
}
|
|
4588
4651
|
};
|
|
4589
4652
|
if (typeof document === "undefined") return null;
|
|
4590
4653
|
const headerTitle = getHeaderTitle();
|
|
4591
4654
|
return createPortal(
|
|
4592
|
-
/* @__PURE__ */
|
|
4655
|
+
/* @__PURE__ */ jsxs16(
|
|
4593
4656
|
"div",
|
|
4594
4657
|
{
|
|
4595
4658
|
ref: panelRef,
|
|
@@ -4608,7 +4671,7 @@ function BugBearPanel({
|
|
|
4608
4671
|
},
|
|
4609
4672
|
onMouseDown: handleMouseDown,
|
|
4610
4673
|
children: [
|
|
4611
|
-
collapsed && /* @__PURE__ */
|
|
4674
|
+
collapsed && /* @__PURE__ */ jsxs16(
|
|
4612
4675
|
"button",
|
|
4613
4676
|
{
|
|
4614
4677
|
onClick: () => setCollapsed(false),
|
|
@@ -4630,9 +4693,9 @@ function BugBearPanel({
|
|
|
4630
4693
|
fontWeight: 500
|
|
4631
4694
|
},
|
|
4632
4695
|
children: [
|
|
4633
|
-
/* @__PURE__ */
|
|
4634
|
-
/* @__PURE__ */
|
|
4635
|
-
badgeCount > 0 && /* @__PURE__ */
|
|
4696
|
+
/* @__PURE__ */ jsx17(BugBearIcon, { size: 24 }),
|
|
4697
|
+
/* @__PURE__ */ jsx17("span", { children: "BugBear" }),
|
|
4698
|
+
badgeCount > 0 && /* @__PURE__ */ jsx17("span", { style: {
|
|
4636
4699
|
backgroundColor: "#fff",
|
|
4637
4700
|
color: colors.blue,
|
|
4638
4701
|
fontSize: "0.75rem",
|
|
@@ -4643,7 +4706,7 @@ function BugBearPanel({
|
|
|
4643
4706
|
]
|
|
4644
4707
|
}
|
|
4645
4708
|
),
|
|
4646
|
-
!collapsed && /* @__PURE__ */
|
|
4709
|
+
!collapsed && /* @__PURE__ */ jsxs16("div", { style: {
|
|
4647
4710
|
width: PANEL_WIDTH,
|
|
4648
4711
|
backgroundColor: colors.bg,
|
|
4649
4712
|
borderRadius: 12,
|
|
@@ -4651,7 +4714,7 @@ function BugBearPanel({
|
|
|
4651
4714
|
overflow: "hidden",
|
|
4652
4715
|
boxShadow: "0 25px 50px -12px rgba(0,0,0,0.5)"
|
|
4653
4716
|
}, children: [
|
|
4654
|
-
/* @__PURE__ */
|
|
4717
|
+
/* @__PURE__ */ jsxs16(
|
|
4655
4718
|
"div",
|
|
4656
4719
|
{
|
|
4657
4720
|
"data-drag-handle": true,
|
|
@@ -4667,7 +4730,7 @@ function BugBearPanel({
|
|
|
4667
4730
|
cursor: draggable ? isDragging ? "grabbing" : "grab" : "default"
|
|
4668
4731
|
},
|
|
4669
4732
|
children: [
|
|
4670
|
-
/* @__PURE__ */
|
|
4733
|
+
/* @__PURE__ */ jsx17("div", { style: { display: "flex", alignItems: "center", gap: 8, flex: 1, minWidth: 0 }, children: canGoBack ? /* @__PURE__ */ jsx17(
|
|
4671
4734
|
"button",
|
|
4672
4735
|
{
|
|
4673
4736
|
onClick: pop,
|
|
@@ -4683,14 +4746,14 @@ function BugBearPanel({
|
|
|
4683
4746
|
},
|
|
4684
4747
|
children: "\u2190 Back"
|
|
4685
4748
|
}
|
|
4686
|
-
) : /* @__PURE__ */
|
|
4687
|
-
/* @__PURE__ */
|
|
4688
|
-
/* @__PURE__ */
|
|
4689
|
-
/* @__PURE__ */
|
|
4690
|
-
/* @__PURE__ */
|
|
4691
|
-
draggable && /* @__PURE__ */
|
|
4749
|
+
) : /* @__PURE__ */ jsxs16(Fragment4, { children: [
|
|
4750
|
+
/* @__PURE__ */ jsx17(BugBearIcon, { size: 28 }),
|
|
4751
|
+
/* @__PURE__ */ jsxs16("div", { children: [
|
|
4752
|
+
/* @__PURE__ */ jsxs16("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [
|
|
4753
|
+
/* @__PURE__ */ jsx17("span", { style: { fontWeight: 600, fontSize: "0.875rem" }, children: "BugBear" }),
|
|
4754
|
+
draggable && /* @__PURE__ */ jsx17("span", { style: { color: colors.textMuted, fontSize: "0.75rem" }, title: "Drag to move, double-click to reset", children: "\u22EE\u22EE" })
|
|
4692
4755
|
] }),
|
|
4693
|
-
testerInfo && /* @__PURE__ */
|
|
4756
|
+
testerInfo && /* @__PURE__ */ jsxs16(
|
|
4694
4757
|
"button",
|
|
4695
4758
|
{
|
|
4696
4759
|
onClick: () => push({ name: "PROFILE" }),
|
|
@@ -4708,13 +4771,13 @@ function BugBearPanel({
|
|
|
4708
4771
|
},
|
|
4709
4772
|
children: [
|
|
4710
4773
|
testerInfo.name,
|
|
4711
|
-
/* @__PURE__ */
|
|
4774
|
+
/* @__PURE__ */ jsx17("span", { style: { fontSize: "0.625rem" }, children: "\u270E" })
|
|
4712
4775
|
]
|
|
4713
4776
|
}
|
|
4714
4777
|
)
|
|
4715
4778
|
] })
|
|
4716
4779
|
] }) }),
|
|
4717
|
-
headerTitle ? /* @__PURE__ */
|
|
4780
|
+
headerTitle ? /* @__PURE__ */ jsx17("span", { style: {
|
|
4718
4781
|
fontSize: "0.8125rem",
|
|
4719
4782
|
fontWeight: 600,
|
|
4720
4783
|
color: colors.textSecondary,
|
|
@@ -4724,7 +4787,7 @@ function BugBearPanel({
|
|
|
4724
4787
|
textOverflow: "ellipsis",
|
|
4725
4788
|
whiteSpace: "nowrap"
|
|
4726
4789
|
}, children: headerTitle }) : null,
|
|
4727
|
-
/* @__PURE__ */
|
|
4790
|
+
/* @__PURE__ */ jsx17(
|
|
4728
4791
|
"button",
|
|
4729
4792
|
{
|
|
4730
4793
|
onClick: handleClose,
|
|
@@ -4748,13 +4811,13 @@ function BugBearPanel({
|
|
|
4748
4811
|
]
|
|
4749
4812
|
}
|
|
4750
4813
|
),
|
|
4751
|
-
/* @__PURE__ */
|
|
4814
|
+
/* @__PURE__ */ jsx17("div", { style: {
|
|
4752
4815
|
padding: 16,
|
|
4753
4816
|
maxHeight: 400,
|
|
4754
4817
|
overflowY: "auto",
|
|
4755
4818
|
backgroundColor: colors.bg,
|
|
4756
4819
|
color: colors.textSecondary
|
|
4757
|
-
}, children: isLoading ? /* @__PURE__ */
|
|
4820
|
+
}, children: isLoading ? /* @__PURE__ */ jsx17("div", { style: { padding: "60px 0", textAlign: "center" }, children: /* @__PURE__ */ jsx17("div", { style: { color: colors.textMuted, fontSize: "0.875rem" }, children: "Loading..." }) }) : renderScreen() })
|
|
4758
4821
|
] })
|
|
4759
4822
|
]
|
|
4760
4823
|
}
|
|
@@ -4766,7 +4829,7 @@ function BugBearPanel({
|
|
|
4766
4829
|
// src/BugBearErrorBoundary.tsx
|
|
4767
4830
|
import { Component } from "react";
|
|
4768
4831
|
import { captureError, contextCapture as contextCapture2 } from "@bbearai/core";
|
|
4769
|
-
import { jsx as
|
|
4832
|
+
import { jsx as jsx18, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
4770
4833
|
var BugBearErrorBoundary = class extends Component {
|
|
4771
4834
|
constructor(props) {
|
|
4772
4835
|
super(props);
|
|
@@ -4811,7 +4874,7 @@ var BugBearErrorBoundary = class extends Component {
|
|
|
4811
4874
|
if (fallback) {
|
|
4812
4875
|
return fallback;
|
|
4813
4876
|
}
|
|
4814
|
-
return /* @__PURE__ */
|
|
4877
|
+
return /* @__PURE__ */ jsxs17(
|
|
4815
4878
|
"div",
|
|
4816
4879
|
{
|
|
4817
4880
|
style: {
|
|
@@ -4823,13 +4886,13 @@ var BugBearErrorBoundary = class extends Component {
|
|
|
4823
4886
|
fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'
|
|
4824
4887
|
},
|
|
4825
4888
|
children: [
|
|
4826
|
-
/* @__PURE__ */
|
|
4827
|
-
/* @__PURE__ */
|
|
4828
|
-
/* @__PURE__ */
|
|
4889
|
+
/* @__PURE__ */ jsxs17("div", { style: { display: "flex", alignItems: "center", gap: "8px", marginBottom: "12px" }, children: [
|
|
4890
|
+
/* @__PURE__ */ jsx18("img", { src: BUGBEAR_LOGO_BASE64, alt: "BugBear", width: 28, height: 28, style: { objectFit: "contain" } }),
|
|
4891
|
+
/* @__PURE__ */ jsx18("h3", { style: { margin: 0, color: "#991b1b", fontSize: "16px" }, children: "Something went wrong" })
|
|
4829
4892
|
] }),
|
|
4830
|
-
/* @__PURE__ */
|
|
4831
|
-
/* @__PURE__ */
|
|
4832
|
-
/* @__PURE__ */
|
|
4893
|
+
/* @__PURE__ */ jsx18("p", { style: { color: "#7f1d1d", fontSize: "14px", margin: "0 0 12px 0" }, children: error.message }),
|
|
4894
|
+
/* @__PURE__ */ jsxs17("div", { style: { display: "flex", gap: "8px" }, children: [
|
|
4895
|
+
/* @__PURE__ */ jsx18(
|
|
4833
4896
|
"button",
|
|
4834
4897
|
{
|
|
4835
4898
|
onClick: this.reset,
|
|
@@ -4846,7 +4909,7 @@ var BugBearErrorBoundary = class extends Component {
|
|
|
4846
4909
|
children: "Try Again"
|
|
4847
4910
|
}
|
|
4848
4911
|
),
|
|
4849
|
-
/* @__PURE__ */
|
|
4912
|
+
/* @__PURE__ */ jsx18(
|
|
4850
4913
|
"button",
|
|
4851
4914
|
{
|
|
4852
4915
|
onClick: () => window.location.reload(),
|
|
@@ -4864,7 +4927,7 @@ var BugBearErrorBoundary = class extends Component {
|
|
|
4864
4927
|
}
|
|
4865
4928
|
)
|
|
4866
4929
|
] }),
|
|
4867
|
-
/* @__PURE__ */
|
|
4930
|
+
/* @__PURE__ */ jsx18("p", { style: { color: "#9ca3af", fontSize: "12px", marginTop: "12px" }, children: "The error has been captured by BugBear" })
|
|
4868
4931
|
]
|
|
4869
4932
|
}
|
|
4870
4933
|
);
|