@usergist/feedback-react-native 0.1.0
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/CHANGELOG.md +12 -0
- package/LICENSE +21 -0
- package/README.md +231 -0
- package/UserGistFeedback.podspec +31 -0
- package/UserGistFeedbackExtension.podspec +23 -0
- package/android/build.gradle +92 -0
- package/android/consumer-rules.pro +5 -0
- package/android/src/main/AndroidManifest.xml +31 -0
- package/android/src/main/java/studio/usergist/feedback/UserGistFirebaseMessagingService.kt +153 -0
- package/android/src/main/java/studio/usergist/feedback/UserGistPushModule.kt +344 -0
- package/android/src/main/java/studio/usergist/feedback/UserGistPushPackage.kt +18 -0
- package/dist/NativeUserGistPush.d.ts +35 -0
- package/dist/NativeUserGistPush.d.ts.map +1 -0
- package/dist/NativeUserGistPush.js +13 -0
- package/dist/NativeUserGistPush.js.map +1 -0
- package/dist/Provider.d.ts +7 -0
- package/dist/Provider.d.ts.map +1 -0
- package/dist/Provider.js +300 -0
- package/dist/Provider.js.map +1 -0
- package/dist/Push.d.ts +103 -0
- package/dist/Push.d.ts.map +1 -0
- package/dist/Push.js +225 -0
- package/dist/Push.js.map +1 -0
- package/dist/UserGist.d.ts +210 -0
- package/dist/UserGist.d.ts.map +1 -0
- package/dist/UserGist.js +1246 -0
- package/dist/UserGist.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/consent.d.ts +17 -0
- package/dist/internal/consent.d.ts.map +1 -0
- package/dist/internal/consent.js +98 -0
- package/dist/internal/consent.js.map +1 -0
- package/dist/internal/context.d.ts +12 -0
- package/dist/internal/context.d.ts.map +1 -0
- package/dist/internal/context.js +70 -0
- package/dist/internal/context.js.map +1 -0
- package/dist/internal/debug.d.ts +14 -0
- package/dist/internal/debug.d.ts.map +1 -0
- package/dist/internal/debug.js +73 -0
- package/dist/internal/debug.js.map +1 -0
- package/dist/internal/engine.d.ts +93 -0
- package/dist/internal/engine.d.ts.map +1 -0
- package/dist/internal/engine.js +904 -0
- package/dist/internal/engine.js.map +1 -0
- package/dist/internal/events.d.ts +49 -0
- package/dist/internal/events.d.ts.map +1 -0
- package/dist/internal/events.js +71 -0
- package/dist/internal/events.js.map +1 -0
- package/dist/internal/frequency-cap.d.ts +15 -0
- package/dist/internal/frequency-cap.d.ts.map +1 -0
- package/dist/internal/frequency-cap.js +84 -0
- package/dist/internal/frequency-cap.js.map +1 -0
- package/dist/internal/identity.d.ts +14 -0
- package/dist/internal/identity.d.ts.map +1 -0
- package/dist/internal/identity.js +113 -0
- package/dist/internal/identity.js.map +1 -0
- package/dist/internal/inapp-matcher.d.ts +13 -0
- package/dist/internal/inapp-matcher.d.ts.map +1 -0
- package/dist/internal/inapp-matcher.js +65 -0
- package/dist/internal/inapp-matcher.js.map +1 -0
- package/dist/internal/inapp-rules-cache.d.ts +16 -0
- package/dist/internal/inapp-rules-cache.d.ts.map +1 -0
- package/dist/internal/inapp-rules-cache.js +88 -0
- package/dist/internal/inapp-rules-cache.js.map +1 -0
- package/dist/internal/instruction-dedupe.d.ts +16 -0
- package/dist/internal/instruction-dedupe.d.ts.map +1 -0
- package/dist/internal/instruction-dedupe.js +52 -0
- package/dist/internal/instruction-dedupe.js.map +1 -0
- package/dist/internal/lifecycle.d.ts +12 -0
- package/dist/internal/lifecycle.d.ts.map +1 -0
- package/dist/internal/lifecycle.js +97 -0
- package/dist/internal/lifecycle.js.map +1 -0
- package/dist/internal/modal-coordinator.d.ts +4 -0
- package/dist/internal/modal-coordinator.d.ts.map +1 -0
- package/dist/internal/modal-coordinator.js +43 -0
- package/dist/internal/modal-coordinator.js.map +1 -0
- package/dist/internal/modal-queue.d.ts +9 -0
- package/dist/internal/modal-queue.d.ts.map +1 -0
- package/dist/internal/modal-queue.js +32 -0
- package/dist/internal/modal-queue.js.map +1 -0
- package/dist/internal/mutation-queue.d.ts +23 -0
- package/dist/internal/mutation-queue.d.ts.map +1 -0
- package/dist/internal/mutation-queue.js +66 -0
- package/dist/internal/mutation-queue.js.map +1 -0
- package/dist/internal/prompt-answers.d.ts +6 -0
- package/dist/internal/prompt-answers.d.ts.map +1 -0
- package/dist/internal/prompt-answers.js +10 -0
- package/dist/internal/prompt-answers.js.map +1 -0
- package/dist/internal/prompt-flow.d.ts +8 -0
- package/dist/internal/prompt-flow.d.ts.map +1 -0
- package/dist/internal/prompt-flow.js +26 -0
- package/dist/internal/prompt-flow.js.map +1 -0
- package/dist/internal/queue.d.ts +17 -0
- package/dist/internal/queue.d.ts.map +1 -0
- package/dist/internal/queue.js +172 -0
- package/dist/internal/queue.js.map +1 -0
- package/dist/internal/requests.d.ts +22 -0
- package/dist/internal/requests.d.ts.map +1 -0
- package/dist/internal/requests.js +146 -0
- package/dist/internal/requests.js.map +1 -0
- package/dist/internal/rules-cache.d.ts +16 -0
- package/dist/internal/rules-cache.d.ts.map +1 -0
- package/dist/internal/rules-cache.js +86 -0
- package/dist/internal/rules-cache.js.map +1 -0
- package/dist/internal/storage.d.ts +36 -0
- package/dist/internal/storage.d.ts.map +1 -0
- package/dist/internal/storage.js +213 -0
- package/dist/internal/storage.js.map +1 -0
- package/dist/internal/survey-completion.d.ts +10 -0
- package/dist/internal/survey-completion.d.ts.map +1 -0
- package/dist/internal/survey-completion.js +11 -0
- package/dist/internal/survey-completion.js.map +1 -0
- package/dist/internal/survey-matcher.d.ts +21 -0
- package/dist/internal/survey-matcher.d.ts.map +1 -0
- package/dist/internal/survey-matcher.js +139 -0
- package/dist/internal/survey-matcher.js.map +1 -0
- package/dist/internal/survey-rules-cache.d.ts +17 -0
- package/dist/internal/survey-rules-cache.d.ts.map +1 -0
- package/dist/internal/survey-rules-cache.js +91 -0
- package/dist/internal/survey-rules-cache.js.map +1 -0
- package/dist/internal/survey-store.d.ts +19 -0
- package/dist/internal/survey-store.d.ts.map +1 -0
- package/dist/internal/survey-store.js +59 -0
- package/dist/internal/survey-store.js.map +1 -0
- package/dist/internal/transport.d.ts +210 -0
- package/dist/internal/transport.d.ts.map +1 -0
- package/dist/internal/transport.js +498 -0
- package/dist/internal/transport.js.map +1 -0
- package/dist/internal/trigger-matcher.d.ts +21 -0
- package/dist/internal/trigger-matcher.d.ts.map +1 -0
- package/dist/internal/trigger-matcher.js +114 -0
- package/dist/internal/trigger-matcher.js.map +1 -0
- package/dist/internal/types.d.ts +89 -0
- package/dist/internal/types.d.ts.map +1 -0
- package/dist/internal/types.js +2 -0
- package/dist/internal/types.js.map +1 -0
- package/dist/internal/user-state.d.ts +11 -0
- package/dist/internal/user-state.d.ts.map +1 -0
- package/dist/internal/user-state.js +118 -0
- package/dist/internal/user-state.js.map +1 -0
- package/dist/native/events.d.ts +27 -0
- package/dist/native/events.d.ts.map +1 -0
- package/dist/native/events.js +12 -0
- package/dist/native/events.js.map +1 -0
- package/dist/native/push-bridge.d.ts +20 -0
- package/dist/native/push-bridge.d.ts.map +1 -0
- package/dist/native/push-bridge.js +92 -0
- package/dist/native/push-bridge.js.map +1 -0
- package/dist/preview/PromptShell.d.ts +9 -0
- package/dist/preview/PromptShell.d.ts.map +1 -0
- package/dist/preview/PromptShell.js +128 -0
- package/dist/preview/PromptShell.js.map +1 -0
- package/dist/preview/SurveyShell.d.ts +15 -0
- package/dist/preview/SurveyShell.d.ts.map +1 -0
- package/dist/preview/SurveyShell.js +197 -0
- package/dist/preview/SurveyShell.js.map +1 -0
- package/dist/preview/index.d.ts +4 -0
- package/dist/preview/index.d.ts.map +1 -0
- package/dist/preview/index.js +16 -0
- package/dist/preview/index.js.map +1 -0
- package/dist/ui/InAppMessageView.d.ts +12 -0
- package/dist/ui/InAppMessageView.d.ts.map +1 -0
- package/dist/ui/InAppMessageView.js +260 -0
- package/dist/ui/InAppMessageView.js.map +1 -0
- package/dist/ui/PromptSheet.d.ts +12 -0
- package/dist/ui/PromptSheet.d.ts.map +1 -0
- package/dist/ui/PromptSheet.js +285 -0
- package/dist/ui/PromptSheet.js.map +1 -0
- package/dist/ui/QuestionImageHeader.d.ts +12 -0
- package/dist/ui/QuestionImageHeader.d.ts.map +1 -0
- package/dist/ui/QuestionImageHeader.js +22 -0
- package/dist/ui/QuestionImageHeader.js.map +1 -0
- package/dist/ui/SurveyView.d.ts +25 -0
- package/dist/ui/SurveyView.d.ts.map +1 -0
- package/dist/ui/SurveyView.js +478 -0
- package/dist/ui/SurveyView.js.map +1 -0
- package/dist/ui/animations.d.ts +4 -0
- package/dist/ui/animations.d.ts.map +1 -0
- package/dist/ui/animations.js +24 -0
- package/dist/ui/animations.js.map +1 -0
- package/dist/ui/questions/MultipleChoiceQuestion.d.ts +12 -0
- package/dist/ui/questions/MultipleChoiceQuestion.d.ts.map +1 -0
- package/dist/ui/questions/MultipleChoiceQuestion.js +41 -0
- package/dist/ui/questions/MultipleChoiceQuestion.js.map +1 -0
- package/dist/ui/questions/NpsQuestion.d.ts +14 -0
- package/dist/ui/questions/NpsQuestion.d.ts.map +1 -0
- package/dist/ui/questions/NpsQuestion.js +73 -0
- package/dist/ui/questions/NpsQuestion.js.map +1 -0
- package/dist/ui/questions/RatingQuestion.d.ts +21 -0
- package/dist/ui/questions/RatingQuestion.d.ts.map +1 -0
- package/dist/ui/questions/RatingQuestion.js +91 -0
- package/dist/ui/questions/RatingQuestion.js.map +1 -0
- package/dist/ui/questions/ShortTextQuestion.d.ts +12 -0
- package/dist/ui/questions/ShortTextQuestion.d.ts.map +1 -0
- package/dist/ui/questions/ShortTextQuestion.js +25 -0
- package/dist/ui/questions/ShortTextQuestion.js.map +1 -0
- package/dist/ui/requests/BoardView.d.ts +9 -0
- package/dist/ui/requests/BoardView.d.ts.map +1 -0
- package/dist/ui/requests/BoardView.js +270 -0
- package/dist/ui/requests/BoardView.js.map +1 -0
- package/dist/ui/requests/CommentsSection.d.ts +7 -0
- package/dist/ui/requests/CommentsSection.d.ts.map +1 -0
- package/dist/ui/requests/CommentsSection.js +254 -0
- package/dist/ui/requests/CommentsSection.js.map +1 -0
- package/dist/ui/requests/DetailView.d.ts +8 -0
- package/dist/ui/requests/DetailView.d.ts.map +1 -0
- package/dist/ui/requests/DetailView.js +206 -0
- package/dist/ui/requests/DetailView.js.map +1 -0
- package/dist/ui/requests/RequestsHost.d.ts +12 -0
- package/dist/ui/requests/RequestsHost.d.ts.map +1 -0
- package/dist/ui/requests/RequestsHost.js +58 -0
- package/dist/ui/requests/RequestsHost.js.map +1 -0
- package/dist/ui/requests/StatusPill.d.ts +6 -0
- package/dist/ui/requests/StatusPill.d.ts.map +1 -0
- package/dist/ui/requests/StatusPill.js +25 -0
- package/dist/ui/requests/StatusPill.js.map +1 -0
- package/dist/ui/requests/SubmitView.d.ts +8 -0
- package/dist/ui/requests/SubmitView.d.ts.map +1 -0
- package/dist/ui/requests/SubmitView.js +94 -0
- package/dist/ui/requests/SubmitView.js.map +1 -0
- package/dist/ui/requests/shared.d.ts +21 -0
- package/dist/ui/requests/shared.d.ts.map +1 -0
- package/dist/ui/requests/shared.js +74 -0
- package/dist/ui/requests/shared.js.map +1 -0
- package/dist/ui/survey-questions.d.ts +20 -0
- package/dist/ui/survey-questions.d.ts.map +1 -0
- package/dist/ui/survey-questions.js +211 -0
- package/dist/ui/survey-questions.js.map +1 -0
- package/dist/ui/theme.d.ts +15 -0
- package/dist/ui/theme.d.ts.map +1 -0
- package/dist/ui/theme.js +31 -0
- package/dist/ui/theme.js.map +1 -0
- package/ios/Extension/UserGistNotificationService.swift +292 -0
- package/ios/UserGistPush.h +16 -0
- package/ios/UserGistPush.mm +158 -0
- package/ios/UserGistPushImpl.swift +399 -0
- package/ios/UserGistPushSwizzle.m +168 -0
- package/package.json +89 -0
- package/react-native.config.js +16 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { Pressable, StyleSheet, Text, TextInput, View } from 'react-native';
|
|
4
|
+
import { QuestionImageHeader } from '../QuestionImageHeader.js';
|
|
5
|
+
export function NpsQuestion({ question, score, followUp, onScore, onFollowUp, theme, }) {
|
|
6
|
+
const [showFollowUp, setShowFollowUp] = useState(score != null);
|
|
7
|
+
// 10 → 0 reads more naturally than 0 → 10 in a vertical stack:
|
|
8
|
+
// the highest / most-promoter answer sits at the top with its
|
|
9
|
+
// label, and the row tapers down to the detractor side. 11 chips
|
|
10
|
+
// crammed in a horizontal row truncate awkwardly on phones — a
|
|
11
|
+
// full-width vertical list is the parity layout the user asked for.
|
|
12
|
+
const items = Array.from({ length: 11 }, (_, i) => 10 - i);
|
|
13
|
+
const lowLabel = question.lowLabel ?? 'Not at all likely';
|
|
14
|
+
const highLabel = question.highLabel ?? 'Extremely likely';
|
|
15
|
+
return (_jsxs(View, { children: [question.imageUrl ? (_jsx(QuestionImageHeader, { uri: question.imageUrl, radius: theme.radius })) : null, _jsx(Text, { style: [styles.title, { color: theme.colors.text, fontFamily: theme.fontFamily }], children: question.title }), question.subtitle ? (_jsx(Text, { style: [styles.subtitle, { color: theme.colors.subtext, fontFamily: theme.fontFamily }], children: question.subtitle })) : null, _jsx(View, { style: styles.column, children: items.map((n) => {
|
|
16
|
+
const selected = score === n;
|
|
17
|
+
const endpointLabel = n === 10 ? highLabel : n === 0 ? lowLabel : null;
|
|
18
|
+
return (_jsxs(Pressable, { onPress: () => {
|
|
19
|
+
onScore(n);
|
|
20
|
+
setShowFollowUp(true);
|
|
21
|
+
}, accessibilityRole: "button", accessibilityLabel: `Score ${n}`, style: [
|
|
22
|
+
styles.cell,
|
|
23
|
+
{
|
|
24
|
+
borderColor: selected ? theme.colors.primary : theme.colors.border,
|
|
25
|
+
backgroundColor: selected ? theme.colors.primary : 'transparent',
|
|
26
|
+
},
|
|
27
|
+
], children: [_jsx(Text, { style: {
|
|
28
|
+
color: selected ? theme.colors.background : theme.colors.text,
|
|
29
|
+
fontFamily: theme.fontFamily,
|
|
30
|
+
fontWeight: '700',
|
|
31
|
+
fontSize: 16,
|
|
32
|
+
minWidth: 24,
|
|
33
|
+
}, children: n }), endpointLabel ? (_jsx(Text, { style: {
|
|
34
|
+
color: selected ? theme.colors.background : theme.colors.subtext,
|
|
35
|
+
fontFamily: theme.fontFamily,
|
|
36
|
+
marginLeft: 12,
|
|
37
|
+
fontSize: 13,
|
|
38
|
+
}, children: endpointLabel })) : null] }, n));
|
|
39
|
+
}) }), showFollowUp && question.followUp ? (_jsxs(View, { style: { marginTop: 16 }, children: [_jsx(Text, { style: [
|
|
40
|
+
styles.subtitle,
|
|
41
|
+
{ color: theme.colors.text, marginBottom: 8, fontFamily: theme.fontFamily },
|
|
42
|
+
], children: question.followUp }), _jsx(TextInput, { value: followUp, onChangeText: onFollowUp, placeholder: "Tell us more...", placeholderTextColor: theme.colors.subtext, style: [
|
|
43
|
+
styles.input,
|
|
44
|
+
{
|
|
45
|
+
borderColor: theme.colors.border,
|
|
46
|
+
color: theme.colors.text,
|
|
47
|
+
fontFamily: theme.fontFamily,
|
|
48
|
+
},
|
|
49
|
+
], multiline: true })] })) : null] }));
|
|
50
|
+
}
|
|
51
|
+
const styles = StyleSheet.create({
|
|
52
|
+
title: { fontSize: 18, fontWeight: '700', marginBottom: 4, textAlign: 'center' },
|
|
53
|
+
subtitle: { fontSize: 14, marginBottom: 12, textAlign: 'center' },
|
|
54
|
+
column: { flexDirection: 'column', gap: 8, marginTop: 12 },
|
|
55
|
+
cell: {
|
|
56
|
+
flexDirection: 'row',
|
|
57
|
+
alignItems: 'center',
|
|
58
|
+
width: '100%',
|
|
59
|
+
minHeight: 44,
|
|
60
|
+
paddingVertical: 10,
|
|
61
|
+
paddingHorizontal: 16,
|
|
62
|
+
borderRadius: 12,
|
|
63
|
+
borderWidth: 1,
|
|
64
|
+
},
|
|
65
|
+
input: {
|
|
66
|
+
minHeight: 80,
|
|
67
|
+
borderWidth: 1,
|
|
68
|
+
borderRadius: 12,
|
|
69
|
+
padding: 12,
|
|
70
|
+
textAlignVertical: 'top',
|
|
71
|
+
},
|
|
72
|
+
});
|
|
73
|
+
//# sourceMappingURL=NpsQuestion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NpsQuestion.js","sourceRoot":"","sources":["../../../src/ui/questions/NpsQuestion.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { RatingQuestion as RatingQ } from '@usergist/sdk-core/mobile';
|
|
3
|
+
import type { ResolvedTheme } from '../theme.js';
|
|
4
|
+
interface Props {
|
|
5
|
+
readonly question: RatingQ;
|
|
6
|
+
readonly value: number | null;
|
|
7
|
+
readonly onChange: (v: number) => void;
|
|
8
|
+
readonly theme: ResolvedTheme;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Rating question. Honours `question.display`:
|
|
12
|
+
* - 'stars' → row of star glyphs (default)
|
|
13
|
+
* - 'numeric' → row of chips with the score
|
|
14
|
+
* - 'emoji' → 5 emoji faces (only valid when scale=5; falls back
|
|
15
|
+
* to stars otherwise so we never silently skip render)
|
|
16
|
+
*
|
|
17
|
+
* The row is centred so the dashboard preview and the device match.
|
|
18
|
+
*/
|
|
19
|
+
export declare function RatingQuestion({ question, value, onChange, theme }: Props): React.ReactElement;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=RatingQuestion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RatingQuestion.d.ts","sourceRoot":"","sources":["../../../src/ui/questions/RatingQuestion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,cAAc,IAAI,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAGhD,UAAU,KAAK;IACb,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAA;CAC9B;AAID;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,YAAY,CAiG9F"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Pressable, StyleSheet, Text, View } from 'react-native';
|
|
3
|
+
import { QuestionImageHeader } from '../QuestionImageHeader.js';
|
|
4
|
+
const EMOJI_5 = ['😡', '😕', '😐', '🙂', '😍'];
|
|
5
|
+
/**
|
|
6
|
+
* Rating question. Honours `question.display`:
|
|
7
|
+
* - 'stars' → row of star glyphs (default)
|
|
8
|
+
* - 'numeric' → row of chips with the score
|
|
9
|
+
* - 'emoji' → 5 emoji faces (only valid when scale=5; falls back
|
|
10
|
+
* to stars otherwise so we never silently skip render)
|
|
11
|
+
*
|
|
12
|
+
* The row is centred so the dashboard preview and the device match.
|
|
13
|
+
*/
|
|
14
|
+
export function RatingQuestion({ question, value, onChange, theme }) {
|
|
15
|
+
const items = Array.from({ length: question.scale }, (_, i) => i + 1);
|
|
16
|
+
const display = question.display ?? 'stars';
|
|
17
|
+
const renderEmoji = display === 'emoji' && question.scale === 5;
|
|
18
|
+
return (_jsxs(View, { children: [question.imageUrl ? (_jsx(QuestionImageHeader, { uri: question.imageUrl, radius: theme.radius })) : null, _jsx(Text, { style: [styles.title, { color: theme.colors.text, fontFamily: theme.fontFamily }], children: question.title }), question.subtitle ? (_jsx(Text, { style: [styles.subtitle, { color: theme.colors.subtext, fontFamily: theme.fontFamily }], children: question.subtitle })) : null, _jsx(View, { style: styles.row, children: items.map((n) => {
|
|
19
|
+
const selected = value === n;
|
|
20
|
+
if (renderEmoji) {
|
|
21
|
+
const glyph = EMOJI_5[n - 1] ?? '🙂';
|
|
22
|
+
return (_jsx(Pressable, { onPress: () => onChange(n), accessibilityRole: "button", accessibilityLabel: `Rate ${n}`, style: [
|
|
23
|
+
styles.emoji,
|
|
24
|
+
{ opacity: selected || value === null ? 1 : 0.35 },
|
|
25
|
+
], children: _jsx(Text, { style: styles.emojiGlyph, children: glyph }) }, n));
|
|
26
|
+
}
|
|
27
|
+
if (display === 'stars') {
|
|
28
|
+
const filled = value != null && n <= value;
|
|
29
|
+
return (_jsx(Pressable, { onPress: () => onChange(n), accessibilityRole: "button", accessibilityLabel: `Rate ${n}`, style: styles.starBtn, children: _jsx(Text, { style: {
|
|
30
|
+
fontSize: 28,
|
|
31
|
+
lineHeight: 32,
|
|
32
|
+
color: filled ? theme.colors.primary : theme.colors.border,
|
|
33
|
+
}, children: "\u2605" }) }, n));
|
|
34
|
+
}
|
|
35
|
+
// 'numeric' — chip with the score
|
|
36
|
+
return (_jsx(Pressable, { onPress: () => onChange(n), accessibilityRole: "button", accessibilityLabel: `Rate ${n}`, style: [
|
|
37
|
+
styles.chip,
|
|
38
|
+
{
|
|
39
|
+
borderColor: theme.colors.border,
|
|
40
|
+
backgroundColor: selected ? theme.colors.primary : 'transparent',
|
|
41
|
+
},
|
|
42
|
+
], children: _jsx(Text, { style: {
|
|
43
|
+
color: selected ? theme.colors.background : theme.colors.text,
|
|
44
|
+
fontFamily: theme.fontFamily,
|
|
45
|
+
fontWeight: '600',
|
|
46
|
+
}, children: n }) }, n));
|
|
47
|
+
}) }), (question.lowLabel || question.highLabel) && (_jsxs(View, { style: styles.labelsRow, children: [_jsx(Text, { style: [styles.endLabel, { color: theme.colors.subtext }], children: question.lowLabel ?? '' }), _jsx(Text, { style: [styles.endLabel, { color: theme.colors.subtext }], children: question.highLabel ?? '' })] }))] }));
|
|
48
|
+
}
|
|
49
|
+
const styles = StyleSheet.create({
|
|
50
|
+
title: { fontSize: 18, fontWeight: '700', marginBottom: 4, textAlign: 'center' },
|
|
51
|
+
subtitle: { fontSize: 14, marginBottom: 16, textAlign: 'center' },
|
|
52
|
+
row: {
|
|
53
|
+
flexDirection: 'row',
|
|
54
|
+
flexWrap: 'wrap',
|
|
55
|
+
gap: 8,
|
|
56
|
+
marginTop: 8,
|
|
57
|
+
justifyContent: 'center',
|
|
58
|
+
},
|
|
59
|
+
chip: {
|
|
60
|
+
minWidth: 40,
|
|
61
|
+
height: 40,
|
|
62
|
+
paddingHorizontal: 10,
|
|
63
|
+
borderRadius: 20,
|
|
64
|
+
borderWidth: 1,
|
|
65
|
+
alignItems: 'center',
|
|
66
|
+
justifyContent: 'center',
|
|
67
|
+
},
|
|
68
|
+
starBtn: {
|
|
69
|
+
width: 36,
|
|
70
|
+
height: 36,
|
|
71
|
+
alignItems: 'center',
|
|
72
|
+
justifyContent: 'center',
|
|
73
|
+
},
|
|
74
|
+
emoji: {
|
|
75
|
+
width: 44,
|
|
76
|
+
height: 44,
|
|
77
|
+
alignItems: 'center',
|
|
78
|
+
justifyContent: 'center',
|
|
79
|
+
},
|
|
80
|
+
emojiGlyph: {
|
|
81
|
+
fontSize: 30,
|
|
82
|
+
lineHeight: 36,
|
|
83
|
+
},
|
|
84
|
+
labelsRow: {
|
|
85
|
+
flexDirection: 'row',
|
|
86
|
+
justifyContent: 'space-between',
|
|
87
|
+
marginTop: 8,
|
|
88
|
+
},
|
|
89
|
+
endLabel: { fontSize: 12 },
|
|
90
|
+
});
|
|
91
|
+
//# sourceMappingURL=RatingQuestion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RatingQuestion.js","sourceRoot":"","sources":["../../../src/ui/questions/RatingQuestion.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ShortTextQuestion as STQ } from '@usergist/sdk-core/mobile';
|
|
3
|
+
import type { ResolvedTheme } from '../theme.js';
|
|
4
|
+
interface Props {
|
|
5
|
+
readonly question: STQ;
|
|
6
|
+
readonly value: string;
|
|
7
|
+
readonly onChange: (s: string) => void;
|
|
8
|
+
readonly theme: ResolvedTheme;
|
|
9
|
+
}
|
|
10
|
+
export declare function ShortTextQuestion({ question, value, onChange, theme }: Props): React.ReactElement;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=ShortTextQuestion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShortTextQuestion.d.ts","sourceRoot":"","sources":["../../../src/ui/questions/ShortTextQuestion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,iBAAiB,IAAI,GAAG,EAAE,MAAM,2BAA2B,CAAA;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAGhD,UAAU,KAAK;IACb,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAA;CAC9B;AAED,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,YAAY,CAkCjG"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { StyleSheet, Text, TextInput, View } from 'react-native';
|
|
3
|
+
import { QuestionImageHeader } from '../QuestionImageHeader.js';
|
|
4
|
+
export function ShortTextQuestion({ question, value, onChange, theme }) {
|
|
5
|
+
return (_jsxs(View, { children: [question.imageUrl ? (_jsx(QuestionImageHeader, { uri: question.imageUrl, radius: theme.radius })) : null, _jsx(Text, { style: [styles.title, { color: theme.colors.text, fontFamily: theme.fontFamily }], children: question.title }), question.subtitle ? (_jsx(Text, { style: [styles.subtitle, { color: theme.colors.subtext, fontFamily: theme.fontFamily }], children: question.subtitle })) : null, _jsx(TextInput, { accessibilityLabel: "Feedback text answer", testID: `feedback-question-${question.id}-input`, value: value, onChangeText: onChange, placeholder: question.placeholder ?? '', placeholderTextColor: theme.colors.subtext, maxLength: question.maxLength, multiline: true, style: [
|
|
6
|
+
styles.input,
|
|
7
|
+
{
|
|
8
|
+
borderColor: theme.colors.border,
|
|
9
|
+
color: theme.colors.text,
|
|
10
|
+
fontFamily: theme.fontFamily,
|
|
11
|
+
},
|
|
12
|
+
] })] }));
|
|
13
|
+
}
|
|
14
|
+
const styles = StyleSheet.create({
|
|
15
|
+
title: { fontSize: 18, fontWeight: '700', marginBottom: 4 },
|
|
16
|
+
subtitle: { fontSize: 14, marginBottom: 12 },
|
|
17
|
+
input: {
|
|
18
|
+
minHeight: 100,
|
|
19
|
+
borderWidth: 1,
|
|
20
|
+
borderRadius: 12,
|
|
21
|
+
padding: 12,
|
|
22
|
+
textAlignVertical: 'top',
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=ShortTextQuestion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShortTextQuestion.js","sourceRoot":"","sources":["../../../src/ui/questions/ShortTextQuestion.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAGhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAS/D,MAAM,UAAU,iBAAiB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAS;IAC3E,OAAO,CACL,MAAC,IAAI,eACF,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CACnB,KAAC,mBAAmB,IAAC,GAAG,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,GAAI,CACtE,CAAC,CAAC,CAAC,IAAI,EACR,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,YACpF,QAAQ,CAAC,KAAK,GACV,EACN,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CACnB,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,YAC1F,QAAQ,CAAC,QAAQ,GACb,CACR,CAAC,CAAC,CAAC,IAAI,EACR,KAAC,SAAS,IACR,kBAAkB,EAAC,sBAAsB,EACzC,MAAM,EAAE,qBAAqB,QAAQ,CAAC,EAAE,QAAQ,EAChD,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,QAAQ,EACtB,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,EAAE,EACvC,oBAAoB,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,EAC1C,SAAS,EAAE,QAAQ,CAAC,SAAS,EAC7B,SAAS,QACT,KAAK,EAAE;oBACL,MAAM,CAAC,KAAK;oBACZ;wBACE,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;wBAChC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;wBACxB,UAAU,EAAE,KAAK,CAAC,UAAU;qBAC7B;iBACF,GACD,IACG,CACR,CAAA;AACH,CAAC;AAED,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE;IAC3D,QAAQ,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;IAC5C,KAAK,EAAE;QACL,SAAS,EAAE,GAAG;QACd,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,EAAE;QAChB,OAAO,EAAE,EAAE;QACX,iBAAiB,EAAE,KAAK;KACzB;CACF,CAAC,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type Branding } from './shared.js';
|
|
2
|
+
export interface BoardViewProps {
|
|
3
|
+
readonly branding: Branding;
|
|
4
|
+
readonly onClose: () => void;
|
|
5
|
+
readonly onOpenDetail: (requestId: string) => void;
|
|
6
|
+
readonly onOpenSubmit: () => void;
|
|
7
|
+
}
|
|
8
|
+
export declare function BoardView({ branding, onClose, onOpenDetail, onOpenSubmit, }: BoardViewProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
//# sourceMappingURL=BoardView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BoardView.d.ts","sourceRoot":"","sources":["../../../src/ui/requests/BoardView.tsx"],"names":[],"mappings":"AAqBA,OAAO,EAKL,KAAK,QAAQ,EAEd,MAAM,aAAa,CAAA;AAGpB,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;IAC5B,QAAQ,CAAC,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IAClD,QAAQ,CAAC,YAAY,EAAE,MAAM,IAAI,CAAA;CAClC;AAED,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,YAAY,GACb,EAAE,cAAc,2CA6JhB"}
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback, useEffect, useMemo, useRef, useState, } from 'react';
|
|
3
|
+
import { ActivityIndicator, Alert, Animated, FlatList, Pressable, RefreshControl, ScrollView, StyleSheet, Text, View, } from 'react-native';
|
|
4
|
+
import { UserGist } from '../../UserGist.js';
|
|
5
|
+
import { STATUS_COLOR, STATUS_KEYS, STATUS_LABEL, applyOptimisticVote, } from './shared.js';
|
|
6
|
+
import { StatusPill } from './StatusPill.js';
|
|
7
|
+
export function BoardView({ branding, onClose, onOpenDetail, onOpenSubmit, }) {
|
|
8
|
+
const accent = branding.accentColor;
|
|
9
|
+
const accentSoft = accent + '15';
|
|
10
|
+
const [items, setItems] = useState([]);
|
|
11
|
+
const [loading, setLoading] = useState(true);
|
|
12
|
+
const [refreshing, setRefreshing] = useState(false);
|
|
13
|
+
const [statusFilter, setStatusFilter] = useState('all');
|
|
14
|
+
const load = useCallback(async (asRefresh = false) => {
|
|
15
|
+
if (asRefresh)
|
|
16
|
+
setRefreshing(true);
|
|
17
|
+
else
|
|
18
|
+
setLoading(true);
|
|
19
|
+
try {
|
|
20
|
+
const result = await UserGist.getRequests({ sort: 'top', limit: 50 });
|
|
21
|
+
setItems(result.items);
|
|
22
|
+
}
|
|
23
|
+
catch (e) {
|
|
24
|
+
Alert.alert('Could not load suggestions', String(e));
|
|
25
|
+
}
|
|
26
|
+
finally {
|
|
27
|
+
setLoading(false);
|
|
28
|
+
setRefreshing(false);
|
|
29
|
+
}
|
|
30
|
+
}, []);
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
void load(false);
|
|
33
|
+
}, [load]);
|
|
34
|
+
const filtered = useMemo(() => {
|
|
35
|
+
if (statusFilter === 'all')
|
|
36
|
+
return items;
|
|
37
|
+
return items.filter((i) => i.status === statusFilter);
|
|
38
|
+
}, [items, statusFilter]);
|
|
39
|
+
const statusCounts = useMemo(() => {
|
|
40
|
+
const counts = {
|
|
41
|
+
under_review: 0,
|
|
42
|
+
planned: 0,
|
|
43
|
+
in_progress: 0,
|
|
44
|
+
shipped: 0,
|
|
45
|
+
declined: 0,
|
|
46
|
+
};
|
|
47
|
+
for (const item of items)
|
|
48
|
+
counts[item.status] += 1;
|
|
49
|
+
return counts;
|
|
50
|
+
}, [items]);
|
|
51
|
+
const onUpvote = useCallback(async (item) => {
|
|
52
|
+
const next = !item.viewerHasUpvoted;
|
|
53
|
+
setItems((prev) => prev.map((r) => (r.id === item.id ? applyOptimisticVote(r, next) : r)));
|
|
54
|
+
try {
|
|
55
|
+
await UserGist.voteOnRequest(item.id, next);
|
|
56
|
+
}
|
|
57
|
+
catch (e) {
|
|
58
|
+
setItems((prev) => prev.map((r) => (r.id === item.id ? item : r)));
|
|
59
|
+
Alert.alert('Vote failed', String(e));
|
|
60
|
+
}
|
|
61
|
+
}, []);
|
|
62
|
+
return (_jsxs(View, { style: styles.container, children: [_jsxs(View, { style: styles.header, children: [_jsx(Pressable, { accessibilityLabel: "Close requests board", testID: "requests-board-close", onPress: onClose, hitSlop: 12, style: styles.closeBtn, children: _jsx(Text, { style: styles.closeText, children: "\u2715" }) }), _jsxs(View, { style: styles.headerCenter, children: [_jsx(Text, { style: styles.headerTitle, children: branding.entryLabel }), _jsxs(Text, { style: styles.headerSubtitle, children: [items.length, " ", items.length === 1 ? 'idea' : 'ideas'] })] }), _jsx(Pressable, { accessibilityLabel: "Create new request", testID: "requests-board-create", onPress: onOpenSubmit, hitSlop: 12, style: [styles.newBtn, { backgroundColor: accent }], children: _jsx(Text, { style: styles.newBtnText, children: "+ New" }) })] }), _jsxs(ScrollView, { horizontal: true, showsHorizontalScrollIndicator: false, contentContainerStyle: styles.filterRow, style: styles.filterScroll, children: [_jsx(FilterChip, { value: "all", label: "All", count: items.length, active: statusFilter === 'all', onPress: setStatusFilter, accent: accent }), STATUS_KEYS.map((s) => {
|
|
63
|
+
const count = statusCounts[s];
|
|
64
|
+
if (count === 0)
|
|
65
|
+
return null;
|
|
66
|
+
return (_jsx(FilterChip, { value: s, label: STATUS_LABEL[s], count: count, active: statusFilter === s, onPress: setStatusFilter, accent: accent, dotColor: STATUS_COLOR[s] }, s));
|
|
67
|
+
})] }), loading ? (_jsx(View, { style: styles.centered, children: _jsx(ActivityIndicator, { color: accent, size: "large" }) })) : (_jsx(FlatList, { data: filtered, keyExtractor: (r) => r.id, refreshControl: _jsx(RefreshControl, { refreshing: refreshing, onRefresh: () => load(true), tintColor: accent }), ListEmptyComponent: _jsx(EmptyState, { accent: accent, hasItems: items.length > 0, onSubmit: onOpenSubmit }), contentContainerStyle: filtered.length === 0
|
|
68
|
+
? { flex: 1 }
|
|
69
|
+
: { paddingVertical: 8, paddingHorizontal: 16 }, renderItem: ({ item }) => (_jsx(RequestCard, { item: item, accent: accent, accentSoft: accentSoft, onUpvote: onUpvote, onOpenId: onOpenDetail })) }))] }));
|
|
70
|
+
}
|
|
71
|
+
function FilterChip({ value, label, count, active, accent, dotColor, onPress, }) {
|
|
72
|
+
const handlePress = useCallback(() => onPress(value), [value, onPress]);
|
|
73
|
+
return (_jsxs(Pressable, { onPress: handlePress, style: [
|
|
74
|
+
styles.chip,
|
|
75
|
+
active
|
|
76
|
+
? { backgroundColor: accent, borderColor: accent }
|
|
77
|
+
: styles.chipIdle,
|
|
78
|
+
], children: [dotColor ? (_jsx(View, { style: [styles.chipDot, { backgroundColor: dotColor }] })) : null, _jsx(Text, { style: [styles.chipText, active && styles.chipTextActive], children: label }), _jsx(View, { style: [
|
|
79
|
+
styles.chipCount,
|
|
80
|
+
active ? styles.chipCountActive : styles.chipCountIdle,
|
|
81
|
+
], children: _jsx(Text, { style: [
|
|
82
|
+
styles.chipCountText,
|
|
83
|
+
active ? { color: accent } : { color: '#6b7280' },
|
|
84
|
+
], children: count }) })] }));
|
|
85
|
+
}
|
|
86
|
+
function RequestCard({ item, accent, accentSoft, onUpvote, onOpenId, }) {
|
|
87
|
+
const scale = useRef(new Animated.Value(1)).current;
|
|
88
|
+
const handleOpen = useCallback(() => onOpenId(item.id), [item.id, onOpenId]);
|
|
89
|
+
const handleUpvote = useCallback(() => onUpvote(item), [item, onUpvote]);
|
|
90
|
+
const onPressIn = () => {
|
|
91
|
+
Animated.spring(scale, {
|
|
92
|
+
toValue: 0.98,
|
|
93
|
+
useNativeDriver: true,
|
|
94
|
+
speed: 60,
|
|
95
|
+
bounciness: 0,
|
|
96
|
+
}).start();
|
|
97
|
+
};
|
|
98
|
+
const onPressOut = () => {
|
|
99
|
+
Animated.spring(scale, {
|
|
100
|
+
toValue: 1,
|
|
101
|
+
useNativeDriver: true,
|
|
102
|
+
speed: 60,
|
|
103
|
+
bounciness: 6,
|
|
104
|
+
}).start();
|
|
105
|
+
};
|
|
106
|
+
return (_jsx(Animated.View, { style: [styles.card, { transform: [{ scale }] }], children: _jsxs(Pressable, { accessibilityLabel: `Open request ${item.title}`, onPress: handleOpen, onPressIn: onPressIn, onPressOut: onPressOut, style: styles.cardInner, children: [_jsx(View, { style: styles.cardLeft, children: _jsxs(Pressable, { accessibilityLabel: `${item.viewerHasUpvoted ? 'Remove vote from' : 'Upvote'} ${item.title}`, style: [
|
|
107
|
+
styles.upvote,
|
|
108
|
+
item.viewerHasUpvoted
|
|
109
|
+
? { backgroundColor: accent, borderColor: accent }
|
|
110
|
+
: { backgroundColor: accentSoft, borderColor: 'transparent' },
|
|
111
|
+
], onPress: handleUpvote, hitSlop: 4, children: [_jsx(Text, { style: [
|
|
112
|
+
styles.upvoteArrow,
|
|
113
|
+
{ color: item.viewerHasUpvoted ? '#fff' : accent },
|
|
114
|
+
], children: "\u25B2" }), _jsx(Text, { style: [
|
|
115
|
+
styles.upvoteCount,
|
|
116
|
+
{ color: item.viewerHasUpvoted ? '#fff' : accent },
|
|
117
|
+
], children: item.upvoteCount })] }) }), _jsxs(View, { style: styles.cardBody, children: [_jsx(Text, { style: styles.cardTitle, numberOfLines: 2, children: item.title }), _jsx(Text, { style: styles.cardDescription, numberOfLines: 2, children: item.description }), _jsxs(View, { style: styles.cardMeta, children: [_jsx(StatusPill, { status: item.status }), item.viewerIsFollowing ? (_jsx(View, { style: styles.followingPill, children: _jsx(Text, { style: styles.followingPillText, children: "\u2713 Following" }) })) : null, _jsxs(Text, { style: styles.cardMetaText, children: [item.followerCount, ' ', item.followerCount === 1 ? 'follower' : 'followers'] })] })] })] }) }));
|
|
118
|
+
}
|
|
119
|
+
function EmptyState({ accent, hasItems, onSubmit }) {
|
|
120
|
+
if (hasItems) {
|
|
121
|
+
return (_jsxs(View, { style: styles.empty, children: [_jsx(Text, { style: styles.emptyIcon, children: "\uD83D\uDD0D" }), _jsx(Text, { style: styles.emptyTitle, children: "Nothing in this filter" }), _jsx(Text, { style: styles.emptyBody, children: "Try \u201CAll\u201D to see every suggestion." })] }));
|
|
122
|
+
}
|
|
123
|
+
return (_jsxs(View, { style: styles.empty, children: [_jsx(Text, { style: styles.emptyIcon, children: "\uD83D\uDCA1" }), _jsx(Text, { style: styles.emptyTitle, children: "No suggestions yet" }), _jsx(Text, { style: styles.emptyBody, children: "Be the first to share an idea \u2014 what would make this app better?" }), _jsx(Pressable, { style: [styles.emptyCta, { backgroundColor: accent }], onPress: onSubmit, children: _jsx(Text, { style: styles.emptyCtaText, children: "Share an idea" }) })] }));
|
|
124
|
+
}
|
|
125
|
+
const styles = StyleSheet.create({
|
|
126
|
+
container: { flex: 1, backgroundColor: '#fafafa' },
|
|
127
|
+
centered: { flex: 1, alignItems: 'center', justifyContent: 'center' },
|
|
128
|
+
header: {
|
|
129
|
+
flexDirection: 'row',
|
|
130
|
+
alignItems: 'center',
|
|
131
|
+
justifyContent: 'space-between',
|
|
132
|
+
paddingHorizontal: 16,
|
|
133
|
+
paddingVertical: 12,
|
|
134
|
+
backgroundColor: '#fff',
|
|
135
|
+
borderBottomWidth: StyleSheet.hairlineWidth,
|
|
136
|
+
borderBottomColor: '#e5e7eb',
|
|
137
|
+
},
|
|
138
|
+
headerCenter: { flex: 1, alignItems: 'center' },
|
|
139
|
+
headerTitle: { fontSize: 17, fontWeight: '700', color: '#111' },
|
|
140
|
+
headerSubtitle: {
|
|
141
|
+
fontSize: 11,
|
|
142
|
+
color: '#9ca3af',
|
|
143
|
+
fontWeight: '500',
|
|
144
|
+
letterSpacing: 0.5,
|
|
145
|
+
marginTop: 2,
|
|
146
|
+
},
|
|
147
|
+
closeBtn: {
|
|
148
|
+
width: 32,
|
|
149
|
+
height: 32,
|
|
150
|
+
borderRadius: 16,
|
|
151
|
+
backgroundColor: '#f3f4f6',
|
|
152
|
+
alignItems: 'center',
|
|
153
|
+
justifyContent: 'center',
|
|
154
|
+
},
|
|
155
|
+
closeText: { fontSize: 14, color: '#6b7280', fontWeight: '600' },
|
|
156
|
+
newBtn: {
|
|
157
|
+
paddingHorizontal: 14,
|
|
158
|
+
paddingVertical: 8,
|
|
159
|
+
borderRadius: 10,
|
|
160
|
+
minWidth: 60,
|
|
161
|
+
alignItems: 'center',
|
|
162
|
+
},
|
|
163
|
+
newBtnText: { fontSize: 13, fontWeight: '600', color: '#fff' },
|
|
164
|
+
filterScroll: { flexGrow: 0, flexShrink: 0 },
|
|
165
|
+
filterRow: {
|
|
166
|
+
paddingHorizontal: 16,
|
|
167
|
+
paddingVertical: 12,
|
|
168
|
+
gap: 8,
|
|
169
|
+
flexDirection: 'row',
|
|
170
|
+
alignItems: 'center',
|
|
171
|
+
},
|
|
172
|
+
chip: {
|
|
173
|
+
height: 32,
|
|
174
|
+
flexDirection: 'row',
|
|
175
|
+
alignItems: 'center',
|
|
176
|
+
paddingHorizontal: 12,
|
|
177
|
+
borderRadius: 100,
|
|
178
|
+
borderWidth: 1,
|
|
179
|
+
gap: 6,
|
|
180
|
+
},
|
|
181
|
+
chipIdle: { backgroundColor: '#fff', borderColor: '#e5e7eb' },
|
|
182
|
+
chipDot: { width: 6, height: 6, borderRadius: 3 },
|
|
183
|
+
chipText: { fontSize: 13, color: '#374151', fontWeight: '500' },
|
|
184
|
+
chipTextActive: { color: '#fff' },
|
|
185
|
+
chipCount: {
|
|
186
|
+
minWidth: 22,
|
|
187
|
+
height: 18,
|
|
188
|
+
paddingHorizontal: 6,
|
|
189
|
+
borderRadius: 9,
|
|
190
|
+
alignItems: 'center',
|
|
191
|
+
justifyContent: 'center',
|
|
192
|
+
},
|
|
193
|
+
chipCountIdle: { backgroundColor: '#f3f4f6' },
|
|
194
|
+
chipCountActive: { backgroundColor: '#fff' },
|
|
195
|
+
chipCountText: { fontSize: 11, fontWeight: '600' },
|
|
196
|
+
card: {
|
|
197
|
+
backgroundColor: '#fff',
|
|
198
|
+
borderRadius: 16,
|
|
199
|
+
marginBottom: 10,
|
|
200
|
+
shadowColor: '#000',
|
|
201
|
+
shadowOpacity: 0.04,
|
|
202
|
+
shadowRadius: 6,
|
|
203
|
+
shadowOffset: { width: 0, height: 1 },
|
|
204
|
+
elevation: 1,
|
|
205
|
+
},
|
|
206
|
+
cardInner: {
|
|
207
|
+
flexDirection: 'row',
|
|
208
|
+
alignItems: 'flex-start',
|
|
209
|
+
padding: 14,
|
|
210
|
+
gap: 14,
|
|
211
|
+
},
|
|
212
|
+
cardLeft: { paddingTop: 2 },
|
|
213
|
+
cardBody: { flex: 1 },
|
|
214
|
+
cardTitle: { fontSize: 15, fontWeight: '600', color: '#111', lineHeight: 20 },
|
|
215
|
+
cardDescription: {
|
|
216
|
+
fontSize: 13,
|
|
217
|
+
color: '#6b7280',
|
|
218
|
+
marginTop: 4,
|
|
219
|
+
lineHeight: 18,
|
|
220
|
+
},
|
|
221
|
+
cardMeta: {
|
|
222
|
+
flexDirection: 'row',
|
|
223
|
+
alignItems: 'center',
|
|
224
|
+
marginTop: 10,
|
|
225
|
+
gap: 8,
|
|
226
|
+
flexWrap: 'wrap',
|
|
227
|
+
},
|
|
228
|
+
cardMetaText: { fontSize: 11, color: '#9ca3af' },
|
|
229
|
+
upvote: {
|
|
230
|
+
width: 52,
|
|
231
|
+
paddingVertical: 8,
|
|
232
|
+
borderRadius: 12,
|
|
233
|
+
alignItems: 'center',
|
|
234
|
+
justifyContent: 'center',
|
|
235
|
+
borderWidth: 1.5,
|
|
236
|
+
},
|
|
237
|
+
upvoteArrow: { fontSize: 11, fontWeight: '700', marginBottom: 1 },
|
|
238
|
+
upvoteCount: { fontSize: 14, fontWeight: '700' },
|
|
239
|
+
followingPill: {
|
|
240
|
+
paddingHorizontal: 8,
|
|
241
|
+
paddingVertical: 3,
|
|
242
|
+
borderRadius: 6,
|
|
243
|
+
backgroundColor: '#111',
|
|
244
|
+
},
|
|
245
|
+
followingPillText: { fontSize: 10, color: '#fff', fontWeight: '600' },
|
|
246
|
+
empty: {
|
|
247
|
+
flex: 1,
|
|
248
|
+
alignItems: 'center',
|
|
249
|
+
justifyContent: 'center',
|
|
250
|
+
paddingHorizontal: 32,
|
|
251
|
+
paddingVertical: 64,
|
|
252
|
+
},
|
|
253
|
+
emptyIcon: { fontSize: 48, marginBottom: 16 },
|
|
254
|
+
emptyTitle: { fontSize: 18, fontWeight: '700', color: '#111' },
|
|
255
|
+
emptyBody: {
|
|
256
|
+
fontSize: 14,
|
|
257
|
+
color: '#6b7280',
|
|
258
|
+
marginTop: 8,
|
|
259
|
+
textAlign: 'center',
|
|
260
|
+
lineHeight: 20,
|
|
261
|
+
},
|
|
262
|
+
emptyCta: {
|
|
263
|
+
marginTop: 20,
|
|
264
|
+
paddingHorizontal: 20,
|
|
265
|
+
paddingVertical: 12,
|
|
266
|
+
borderRadius: 12,
|
|
267
|
+
},
|
|
268
|
+
emptyCtaText: { color: '#fff', fontWeight: '600', fontSize: 14 },
|
|
269
|
+
});
|
|
270
|
+
//# sourceMappingURL=BoardView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BoardView.js","sourceRoot":"","sources":["../../../src/ui/requests/BoardView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
interface CommentsSectionProps {
|
|
2
|
+
readonly requestId: string;
|
|
3
|
+
readonly accent: string;
|
|
4
|
+
}
|
|
5
|
+
export declare function CommentsSection({ requestId, accent }: CommentsSectionProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=CommentsSection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommentsSection.d.ts","sourceRoot":"","sources":["../../../src/ui/requests/CommentsSection.tsx"],"names":[],"mappings":"AAqBA,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED,wBAAgB,eAAe,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,oBAAoB,2CA2J1E"}
|