convex-feedback-ui 0.1.8 → 0.2.0-beta.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/README.md +30 -1
- package/dist/.tsbuildinfo +1 -1
- package/dist/native/expo/ExpoFeedbackBody.d.ts +1 -1
- package/dist/native/expo/ExpoFeedbackBody.d.ts.map +1 -1
- package/dist/native/expo/ExpoFeedbackBody.js +2 -2
- package/dist/native/expo/ExpoFeedbackBody.js.map +1 -1
- package/dist/native/expo/FeedbackRoutes.d.ts.map +1 -1
- package/dist/native/expo/FeedbackRoutes.js +17 -9
- package/dist/native/expo/FeedbackRoutes.js.map +1 -1
- package/dist/native/expo/FeedbackScreen.d.ts +1 -1
- package/dist/native/expo/FeedbackScreen.d.ts.map +1 -1
- package/dist/native/expo/FeedbackScreen.js +2 -2
- package/dist/native/expo/FeedbackScreen.js.map +1 -1
- package/dist/native/expo/FeedbackStack.d.ts +1 -1
- package/dist/native/expo/FeedbackStack.d.ts.map +1 -1
- package/dist/native/expo/FeedbackStack.js +15 -8
- package/dist/native/expo/FeedbackStack.js.map +1 -1
- package/dist/native/expo/FeedbackStackLayout.d.ts +1 -1
- package/dist/native/expo/FeedbackStackLayout.d.ts.map +1 -1
- package/dist/native/expo/FeedbackStackLayout.js +7 -2
- package/dist/native/expo/FeedbackStackLayout.js.map +1 -1
- package/dist/native/expo/index.d.ts +1 -0
- package/dist/native/expo/index.d.ts.map +1 -1
- package/dist/native/expo/index.js +1 -0
- package/dist/native/expo/index.js.map +1 -1
- package/dist/native/expo/types.d.ts +13 -0
- package/dist/native/expo/types.d.ts.map +1 -1
- package/dist/native/native/FeedbackScreen.d.ts +1 -1
- package/dist/native/native/FeedbackScreen.d.ts.map +1 -1
- package/dist/native/native/FeedbackScreen.js +2 -2
- package/dist/native/native/FeedbackScreen.js.map +1 -1
- package/dist/native/native/index.d.ts +1 -0
- package/dist/native/native/index.d.ts.map +1 -1
- package/dist/native/native/index.js +1 -0
- package/dist/native/native/index.js.map +1 -1
- package/dist/native/shared/helpers.d.ts +6 -1
- package/dist/native/shared/helpers.d.ts.map +1 -1
- package/dist/native/shared/helpers.js +33 -0
- package/dist/native/shared/helpers.js.map +1 -1
- package/dist/native/shared/ui/BodyContent.d.ts.map +1 -1
- package/dist/native/shared/ui/BodyContent.js +8 -2
- package/dist/native/shared/ui/BodyContent.js.map +1 -1
- package/dist/native/shared/ui/Button.d.ts +2 -1
- package/dist/native/shared/ui/Button.d.ts.map +1 -1
- package/dist/native/shared/ui/Button.js +3 -2
- package/dist/native/shared/ui/Button.js.map +1 -1
- package/dist/native/shared/ui/CommentBranch.d.ts.map +1 -1
- package/dist/native/shared/ui/CommentBranch.js +33 -11
- package/dist/native/shared/ui/CommentBranch.js.map +1 -1
- package/dist/native/shared/ui/EntryCard.d.ts.map +1 -1
- package/dist/native/shared/ui/EntryCard.js +13 -1
- package/dist/native/shared/ui/EntryCard.js.map +1 -1
- package/dist/native/shared/ui/EntryDetail.d.ts.map +1 -1
- package/dist/native/shared/ui/EntryDetail.js +23 -5
- package/dist/native/shared/ui/EntryDetail.js.map +1 -1
- package/dist/native/shared/ui/FeedbackScreenHeader.d.ts.map +1 -1
- package/dist/native/shared/ui/FeedbackScreenHeader.js +7 -2
- package/dist/native/shared/ui/FeedbackScreenHeader.js.map +1 -1
- package/dist/native/shared/ui/FeedbackScreenList.d.ts.map +1 -1
- package/dist/native/shared/ui/FeedbackScreenList.js +16 -8
- package/dist/native/shared/ui/FeedbackScreenList.js.map +1 -1
- package/dist/native/shared/ui/NewEntry.d.ts.map +1 -1
- package/dist/native/shared/ui/NewEntry.js +13 -11
- package/dist/native/shared/ui/NewEntry.js.map +1 -1
- package/dist/native/shared/ui/RoadmapScreen.d.ts +3 -0
- package/dist/native/shared/ui/RoadmapScreen.d.ts.map +1 -0
- package/dist/native/shared/ui/RoadmapScreen.js +73 -0
- package/dist/native/shared/ui/RoadmapScreen.js.map +1 -0
- package/dist/react/action.d.ts +14 -0
- package/dist/react/action.d.ts.map +1 -0
- package/dist/react/action.js +38 -0
- package/dist/react/action.js.map +1 -0
- package/dist/react/index.d.ts +1 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +1 -0
- package/dist/react/index.js.map +1 -1
- package/dist/react/roadmap.d.ts +3 -0
- package/dist/react/roadmap.d.ts.map +1 -0
- package/dist/react/roadmap.js +59 -0
- package/dist/react/roadmap.js.map +1 -0
- package/dist/react/screen.d.ts +1 -1
- package/dist/react/screen.d.ts.map +1 -1
- package/dist/react/screen.js +99 -42
- package/dist/react/screen.js.map +1 -1
- package/dist/react/styles.css +42 -0
- package/dist/shared/context/FeedbackBodyProvider.d.ts +1 -1
- package/dist/shared/context/FeedbackBodyProvider.d.ts.map +1 -1
- package/dist/shared/context/FeedbackBodyProvider.js +8 -2
- package/dist/shared/context/FeedbackBodyProvider.js.map +1 -1
- package/dist/shared/helpers.d.ts +6 -0
- package/dist/shared/helpers.d.ts.map +1 -1
- package/dist/shared/helpers.js +12 -0
- package/dist/shared/helpers.js.map +1 -1
- package/dist/shared/types/index.d.ts +1 -0
- package/dist/shared/types/index.d.ts.map +1 -1
- package/dist/shared/types/messages.d.ts +1 -1
- package/dist/shared/types/messages.d.ts.map +1 -1
- package/dist/shared/types/roadmap.d.ts +17 -0
- package/dist/shared/types/roadmap.d.ts.map +1 -0
- package/dist/shared/types/roadmap.js +2 -0
- package/dist/shared/types/roadmap.js.map +1 -0
- package/dist/shared/types/screen.d.ts +10 -1
- package/dist/shared/types/screen.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/native/expo/ExpoFeedbackBody.tsx +2 -0
- package/src/native/expo/FeedbackRoutes.tsx +54 -30
- package/src/native/expo/FeedbackScreen.tsx +2 -0
- package/src/native/expo/FeedbackStack.tsx +46 -27
- package/src/native/expo/FeedbackStackLayout.tsx +11 -1
- package/src/native/expo/README.md +15 -0
- package/src/native/expo/index.ts +1 -0
- package/src/native/expo/types.ts +12 -0
- package/src/native/native/FeedbackScreen.tsx +2 -0
- package/src/native/native/README.md +4 -0
- package/src/native/native/index.ts +1 -0
- package/src/native/shared/helpers.ts +38 -1
- package/src/native/shared/ui/BodyContent.tsx +15 -2
- package/src/native/shared/ui/Button.tsx +4 -0
- package/src/native/shared/ui/CommentBranch.tsx +58 -15
- package/src/native/shared/ui/EntryCard.tsx +21 -3
- package/src/native/shared/ui/EntryDetail.tsx +42 -8
- package/src/native/shared/ui/FeedbackScreenHeader.tsx +9 -1
- package/src/native/shared/ui/FeedbackScreenList.tsx +28 -13
- package/src/native/shared/ui/NewEntry.tsx +25 -12
- package/src/native/shared/ui/RoadmapScreen.tsx +345 -0
- package/src/react/README.md +1 -1
- package/src/react/action.tsx +56 -0
- package/src/react/index.ts +1 -0
- package/src/react/roadmap.tsx +303 -0
- package/src/react/screen.tsx +199 -75
- package/src/react/styles.css +42 -0
- package/src/shared/context/FeedbackBodyProvider.tsx +9 -1
- package/src/shared/helpers.ts +16 -0
- package/src/shared/types/index.ts +1 -0
- package/src/shared/types/messages.ts +1 -1
- package/src/shared/types/roadmap.ts +25 -0
- package/src/shared/types/screen.ts +12 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
export declare function Button({ label, onPress, variant, }: {
|
|
1
|
+
export declare function Button({ label, onPress, variant, disabled, }: {
|
|
2
2
|
label: string;
|
|
3
3
|
onPress: () => void;
|
|
4
4
|
variant?: "default" | "primary";
|
|
5
|
+
disabled?: boolean;
|
|
5
6
|
}): import("react").JSX.Element;
|
|
6
7
|
//# sourceMappingURL=Button.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../../src/native/shared/ui/Button.tsx"],"names":[],"mappings":"AAGA,wBAAgB,MAAM,CAAC,EACrB,KAAK,EACL,OAAO,EACP,OAAmB,
|
|
1
|
+
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../../src/native/shared/ui/Button.tsx"],"names":[],"mappings":"AAGA,wBAAgB,MAAM,CAAC,EACrB,KAAK,EACL,OAAO,EACP,OAAmB,EACnB,QAAgB,GACjB,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,+BA4BA"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { Pressable, Text } from "react-native";
|
|
3
3
|
import { useFeedbackUi } from "../../../shared/context/FeedbackProvider.js";
|
|
4
|
-
export function Button({ label, onPress, variant = "default", }) {
|
|
4
|
+
export function Button({ label, onPress, variant = "default", disabled = false, }) {
|
|
5
5
|
const { theme } = useFeedbackUi();
|
|
6
6
|
const primary = variant === "primary";
|
|
7
|
-
return (_jsx(Pressable, { onPress: onPress, style: {
|
|
7
|
+
return (_jsx(Pressable, { onPress: onPress, disabled: disabled, style: {
|
|
8
8
|
alignSelf: primary ? "center" : "flex-start",
|
|
9
9
|
paddingVertical: 8,
|
|
10
10
|
paddingHorizontal: 11,
|
|
@@ -12,6 +12,7 @@ export function Button({ label, onPress, variant = "default", }) {
|
|
|
12
12
|
borderWidth: 1,
|
|
13
13
|
borderColor: primary ? theme.colors.primary : theme.colors.border,
|
|
14
14
|
backgroundColor: primary ? theme.colors.primary : undefined,
|
|
15
|
+
opacity: disabled ? 0.55 : 1,
|
|
15
16
|
}, children: _jsx(Text, { style: {
|
|
16
17
|
color: primary ? theme.colors.primaryForeground : theme.colors.text,
|
|
17
18
|
fontWeight: "600",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../../src/native/shared/ui/Button.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAE5E,MAAM,UAAU,MAAM,CAAC,EACrB,KAAK,EACL,OAAO,EACP,OAAO,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../../src/native/shared/ui/Button.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAE5E,MAAM,UAAU,MAAM,CAAC,EACrB,KAAK,EACL,OAAO,EACP,OAAO,GAAG,SAAS,EACnB,QAAQ,GAAG,KAAK,GAMjB;IACC,MAAM,EAAE,KAAK,EAAE,GAAG,aAAa,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,OAAO,KAAK,SAAS,CAAC;IACtC,OAAO,CACL,KAAC,SAAS,IACR,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE;YACL,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY;YAC5C,eAAe,EAAE,CAAC;YAClB,iBAAiB,EAAE,EAAE;YACrB,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,CAAC;YACd,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM;YACjE,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YAC3D,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAC7B,YAED,KAAC,IAAI,IACH,KAAK,EAAE;gBACL,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;gBACnE,UAAU,EAAE,KAAK;aAClB,YAEA,KAAK,GACD,GACG,CACb,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommentBranch.d.ts","sourceRoot":"","sources":["../../../../src/native/shared/ui/CommentBranch.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CommentBranch.d.ts","sourceRoot":"","sources":["../../../../src/native/shared/ui/CommentBranch.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,uBAAuB,CAAC;AAK9E,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AAE1E,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,eAAe,GAChB,EAAE,4BAA4B,+BA8B9B;AAED,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,OAAO,GACR,EAAE,gCAAgC,+BAiHlC"}
|
|
@@ -3,8 +3,10 @@ import { useMemo, useState } from "react";
|
|
|
3
3
|
import { Text, View } from "react-native";
|
|
4
4
|
import { useFeedbackBody } from "../../../shared/context/FeedbackBodyProvider.js";
|
|
5
5
|
import { useFeedbackUi } from "../../../shared/context/FeedbackProvider.js";
|
|
6
|
+
import { allowAuthenticatedAction } from "../../../shared/helpers.js";
|
|
6
7
|
import { Button } from "./Button";
|
|
7
8
|
import { Comment, FeedbackForm } from "./primitives.js";
|
|
9
|
+
import { useNativeAction } from "../helpers.js";
|
|
8
10
|
export function ReplyList({ entryId, parentCommentId, }) {
|
|
9
11
|
const { hooks, commentSort, transformComments } = useFeedbackBody();
|
|
10
12
|
const { messages } = useFeedbackUi();
|
|
@@ -14,32 +16,52 @@ export function ReplyList({ entryId, parentCommentId, }) {
|
|
|
14
16
|
sort: commentSort,
|
|
15
17
|
});
|
|
16
18
|
const visible = useMemo(() => transformComments?.(replies.results) ?? replies.results, [replies.results, transformComments]);
|
|
17
|
-
return (_jsxs(Comment.Children, { children: [visible.map((reply) => (_jsx(CommentBranch, { comment: reply, entryId: entryId }, reply.id))), replies.status === "CanLoadMore"
|
|
19
|
+
return (_jsxs(Comment.Children, { children: [visible.map((reply) => (_jsx(CommentBranch, { comment: reply, entryId: entryId }, reply.id))), (replies.status === "CanLoadMore" ||
|
|
20
|
+
replies.status === "LoadingMore") && (_jsx(Button, { label: messages.comments.loadMore, disabled: replies.status === "LoadingMore", onPress: () => replies.loadMore(hooks.pageSizes.replies) }))] }));
|
|
18
21
|
}
|
|
19
22
|
export function CommentBranch({ comment, entryId, }) {
|
|
20
|
-
const { hooks, maxCommentDepth, renderActor } = useFeedbackBody();
|
|
23
|
+
const { hooks, maxCommentDepth, renderActor, isAuthenticated, onUnauthenticated, } = useFeedbackBody();
|
|
21
24
|
const { messages, theme } = useFeedbackUi();
|
|
22
25
|
const [expanded, setExpanded] = useState(false);
|
|
23
26
|
const [replying, setReplying] = useState(false);
|
|
24
27
|
const [replyBody, setReplyBody] = useState("");
|
|
25
28
|
const setLike = hooks.useSetCommentLike();
|
|
26
29
|
const createComment = hooks.useCreateComment();
|
|
30
|
+
const likeAction = useNativeAction();
|
|
31
|
+
const replyAction = useNativeAction();
|
|
32
|
+
const toggleLike = (desiredState) => {
|
|
33
|
+
if (!allowAuthenticatedAction(isAuthenticated, onUnauthenticated) ||
|
|
34
|
+
likeAction.pending) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
void likeAction.run(() => setLike({ commentId: comment.id, desiredState }), "Could not update like");
|
|
38
|
+
};
|
|
27
39
|
return (_jsxs(Comment.Root, { comment: comment, children: [renderActor === undefined ? null : (_jsx(View, { children: renderActor(comment.actorId) })), _jsx(Comment.Body, {}), _jsxs(View, { style: {
|
|
28
40
|
flexDirection: "row",
|
|
29
41
|
flexWrap: "wrap",
|
|
30
42
|
alignItems: "center",
|
|
31
43
|
gap: 4,
|
|
32
|
-
}, children: [_jsx(Comment.Like, {
|
|
44
|
+
}, children: [_jsx(Comment.Like, { disabled: isAuthenticated === undefined || likeAction.pending, onToggle: toggleLike }), comment.body !== null && comment.depth < maxCommentDepth ? (_jsx(Comment.Reply, { disabled: isAuthenticated === undefined || replyAction.pending, onActivate: () => {
|
|
45
|
+
if (allowAuthenticatedAction(isAuthenticated, onUnauthenticated)) {
|
|
46
|
+
setReplying((value) => !value);
|
|
47
|
+
}
|
|
48
|
+
} })) : null, _jsx(Comment.RepliesButton, { expanded: expanded, onExpandedChange: setExpanded })] }), replying ? (_jsxs(FeedbackForm.Root, { children: [_jsx(FeedbackForm.Textarea, { value: replyBody, onChangeText: setReplyBody, placeholder: messages.comments.placeholder }), _jsx(FeedbackForm.Submit, { disabled: isAuthenticated === undefined || replyAction.pending, submitting: replyAction.pending, onPress: () => {
|
|
33
49
|
if (replyBody.trim().length === 0)
|
|
34
50
|
return;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
51
|
+
if (!allowAuthenticatedAction(isAuthenticated, onUnauthenticated) ||
|
|
52
|
+
replyAction.pending) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
void replyAction.run(async () => {
|
|
56
|
+
await createComment({
|
|
57
|
+
entryId,
|
|
58
|
+
parentCommentId: comment.id,
|
|
59
|
+
body: replyBody,
|
|
60
|
+
});
|
|
61
|
+
setReplyBody("");
|
|
62
|
+
setReplying(false);
|
|
63
|
+
setExpanded(true);
|
|
64
|
+
}, "Could not add reply");
|
|
43
65
|
}, children: messages.comments.reply }), _jsx(Button, { label: messages.comments.cancelReply, onPress: () => setReplying(false) })] })) : null, expanded ? (_jsx(ReplyList, { entryId: entryId, parentCommentId: comment.id })) : null, comment.deletedAt !== undefined ? (_jsx(Text, { style: { color: theme.colors.mutedText, fontSize: 11 }, children: messages.comments.deleted })) : null] }));
|
|
44
66
|
}
|
|
45
67
|
//# sourceMappingURL=CommentBranch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommentBranch.js","sourceRoot":"","sources":["../../../../src/native/shared/ui/CommentBranch.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,iDAAiD,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;
|
|
1
|
+
{"version":3,"file":"CommentBranch.js","sourceRoot":"","sources":["../../../../src/native/shared/ui/CommentBranch.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntryCard.d.ts","sourceRoot":"","sources":["../../../../src/native/shared/ui/EntryCard.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"EntryCard.d.ts","sourceRoot":"","sources":["../../../../src/native/shared/ui/EntryCard.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AAM1E,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,KAAK,EACL,MAAM,GACP,EAAE,4BAA4B,+BA0C9B"}
|
|
@@ -1,9 +1,21 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Pressable, View } from "react-native";
|
|
3
|
+
import { allowAuthenticatedAction } from "../../../shared/helpers.js";
|
|
4
|
+
import { useFeedbackBody } from "../../../shared/context/FeedbackBodyProvider.js";
|
|
5
|
+
import { useNativeAction } from "../helpers.js";
|
|
3
6
|
import { FeedbackEntry } from "./primitives";
|
|
4
7
|
export function EntryCard({ entry, hooks, onOpen, }) {
|
|
8
|
+
const { isAuthenticated, onUnauthenticated } = useFeedbackBody();
|
|
5
9
|
const setUpvote = hooks.useSetEntryUpvote();
|
|
6
|
-
|
|
10
|
+
const action = useNativeAction();
|
|
11
|
+
const toggleUpvote = (desiredState) => {
|
|
12
|
+
if (!allowAuthenticatedAction(isAuthenticated, onUnauthenticated) ||
|
|
13
|
+
action.pending) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
void action.run(() => setUpvote({ entryId: entry.id, desiredState }), "Could not update vote");
|
|
17
|
+
};
|
|
18
|
+
return (_jsxs(FeedbackEntry.Root, { entry: entry, children: [_jsx(FeedbackEntry.Upvote, { disabled: isAuthenticated === undefined || action.pending, onToggle: toggleUpvote }), _jsxs(Pressable, { onPress: onOpen, style: { flex: 1, gap: 4 }, children: [_jsxs(View, { style: {
|
|
7
19
|
flexDirection: "row",
|
|
8
20
|
alignItems: "center",
|
|
9
21
|
justifyContent: "space-between",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntryCard.js","sourceRoot":"","sources":["../../../../src/native/shared/ui/EntryCard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAG/C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,UAAU,SAAS,CAAC,EACxB,KAAK,EACL,KAAK,EACL,MAAM,GACuB;IAC7B,MAAM,SAAS,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC;IAC5C,
|
|
1
|
+
{"version":3,"file":"EntryCard.js","sourceRoot":"","sources":["../../../../src/native/shared/ui/EntryCard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAG/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,iDAAiD,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,UAAU,SAAS,CAAC,EACxB,KAAK,EACL,KAAK,EACL,MAAM,GACuB;IAC7B,MAAM,EAAE,eAAe,EAAE,iBAAiB,EAAE,GAAG,eAAe,EAAE,CAAC;IACjE,MAAM,SAAS,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC;IAC5C,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IAEjC,MAAM,YAAY,GAAG,CAAC,YAAqB,EAAE,EAAE;QAC7C,IACE,CAAC,wBAAwB,CAAC,eAAe,EAAE,iBAAiB,CAAC;YAC7D,MAAM,CAAC,OAAO,EACd,CAAC;YACD,OAAO;QACT,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,CACb,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,YAAY,EAAE,CAAC,EACpD,uBAAuB,CACxB,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,CACL,MAAC,aAAa,CAAC,IAAI,IAAC,KAAK,EAAE,KAAK,aAC9B,KAAC,aAAa,CAAC,MAAM,IACnB,QAAQ,EAAE,eAAe,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,EACzD,QAAQ,EAAE,YAAY,GACtB,EACF,MAAC,SAAS,IAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,aACpD,MAAC,IAAI,IACH,KAAK,EAAE;4BACL,aAAa,EAAE,KAAK;4BACpB,UAAU,EAAE,QAAQ;4BACpB,cAAc,EAAE,eAAe;4BAC/B,GAAG,EAAE,CAAC;yBACP,aAED,KAAC,aAAa,CAAC,IAAI,KAAG,EACtB,KAAC,aAAa,CAAC,MAAM,KAAG,IACnB,EACP,KAAC,aAAa,CAAC,KAAK,KAAG,EACvB,KAAC,aAAa,CAAC,IAAI,IAAC,aAAa,EAAE,CAAC,GAAI,EACxC,KAAC,aAAa,CAAC,YAAY,KAAG,IACpB,IACO,CACtB,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntryDetail.d.ts","sourceRoot":"","sources":["../../../../src/native/shared/ui/EntryDetail.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"EntryDetail.d.ts","sourceRoot":"","sources":["../../../../src/native/shared/ui/EntryDetail.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AAO5E,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,MAAM,EACN,cAAc,GACf,EAAE,8BAA8B,2CAqIhC"}
|
|
@@ -3,12 +3,14 @@ import { useMemo, useState } from "react";
|
|
|
3
3
|
import { ActivityIndicator, Text, View } from "react-native";
|
|
4
4
|
import { useFeedbackBody } from "../../../shared/context/FeedbackBodyProvider";
|
|
5
5
|
import { useFeedbackUi } from "../../../shared/context/FeedbackProvider";
|
|
6
|
+
import { allowAuthenticatedAction } from "../../../shared/helpers.js";
|
|
6
7
|
import { Button } from "./Button";
|
|
7
8
|
import { CommentBranch } from "./CommentBranch";
|
|
8
9
|
import { FeedbackEntry, FeedbackForm } from "./primitives";
|
|
9
10
|
import { MetadataModal } from "./MetadataModal";
|
|
11
|
+
import { useNativeAction } from "../helpers.js";
|
|
10
12
|
export function EntryDetail({ entryId, onBack, hideBackButton, }) {
|
|
11
|
-
const { hooks, commentSort, transformComments } = useFeedbackBody();
|
|
13
|
+
const { hooks, commentSort, transformComments, isAuthenticated, onUnauthenticated, } = useFeedbackBody();
|
|
12
14
|
const { messages, theme } = useFeedbackUi();
|
|
13
15
|
const entry = hooks.useEntry(entryId);
|
|
14
16
|
const comments = hooks.useComments({ entryId, sort: commentSort });
|
|
@@ -16,6 +18,15 @@ export function EntryDetail({ entryId, onBack, hideBackButton, }) {
|
|
|
16
18
|
const createComment = hooks.useCreateComment();
|
|
17
19
|
const [body, setBody] = useState("");
|
|
18
20
|
const [showMetadata, setShowMetadata] = useState(false);
|
|
21
|
+
const upvoteAction = useNativeAction();
|
|
22
|
+
const commentAction = useNativeAction();
|
|
23
|
+
const toggleUpvote = (desiredState) => {
|
|
24
|
+
if (!allowAuthenticatedAction(isAuthenticated, onUnauthenticated) ||
|
|
25
|
+
upvoteAction.pending) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
void upvoteAction.run(() => setUpvote({ entryId, desiredState }), "Could not update vote");
|
|
29
|
+
};
|
|
19
30
|
const visible = useMemo(() => transformComments?.(comments.results) ?? comments.results, [comments.results, transformComments]);
|
|
20
31
|
if (entry === undefined)
|
|
21
32
|
return (_jsxs(View, { style: {
|
|
@@ -29,11 +40,18 @@ export function EntryDetail({ entryId, onBack, hideBackButton, }) {
|
|
|
29
40
|
return;
|
|
30
41
|
return _jsx(Button, { label: messages.entry.back, onPress: onBack });
|
|
31
42
|
}
|
|
32
|
-
return (_jsxs(View, { style: { gap: 12 }, children: [!hideBackButton && (_jsx(Button, { label: messages.entry.back, onPress: onBack })), _jsxs(FeedbackEntry.Root, { entry: entry, children: [_jsx(FeedbackEntry.Upvote, {
|
|
43
|
+
return (_jsxs(View, { style: { gap: 12 }, children: [!hideBackButton && (_jsx(Button, { label: messages.entry.back, onPress: onBack })), _jsxs(FeedbackEntry.Root, { entry: entry, children: [_jsx(FeedbackEntry.Upvote, { disabled: isAuthenticated === undefined || upvoteAction.pending, onToggle: toggleUpvote }), _jsxs(FeedbackEntry.Content, { style: { gap: 5 }, children: [_jsx(FeedbackEntry.Status, {}), _jsx(FeedbackEntry.Title, {}), _jsx(FeedbackEntry.Body, {}), _jsx(FeedbackEntry.CommentCount, {})] })] }), entry.metadata !== undefined && (_jsx(Button, { label: messages.metadata.view, onPress: () => setShowMetadata(true) })), showMetadata && entry.metadata !== undefined && (_jsx(MetadataModal, { metadata: entry.metadata, onRequestClose: () => setShowMetadata(false) })), _jsx(Text, { style: { color: theme.colors.text, fontSize: 18, fontWeight: "700" }, children: messages.comments.title }), _jsxs(FeedbackForm.Root, { children: [_jsx(FeedbackForm.Textarea, { value: body, onChangeText: setBody, placeholder: messages.comments.placeholder }), _jsx(FeedbackForm.Submit, { disabled: isAuthenticated === undefined || commentAction.pending, submitting: commentAction.pending, onPress: () => {
|
|
33
44
|
if (body.trim().length === 0)
|
|
34
45
|
return;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
46
|
+
if (!allowAuthenticatedAction(isAuthenticated, onUnauthenticated) ||
|
|
47
|
+
commentAction.pending) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
void commentAction.run(async () => {
|
|
51
|
+
await createComment({ entryId, body });
|
|
52
|
+
setBody("");
|
|
53
|
+
}, "Could not add comment");
|
|
54
|
+
}, children: messages.comments.submit })] }), _jsx(View, { style: { gap: 8 }, children: visible.map((comment) => (_jsx(CommentBranch, { comment: comment, entryId: entryId }, comment.id))) }), (comments.status === "CanLoadMore" ||
|
|
55
|
+
comments.status === "LoadingMore") && (_jsx(Button, { label: messages.comments.loadMore, disabled: comments.status === "LoadingMore", onPress: () => comments.loadMore(hooks.pageSizes.comments) }))] }));
|
|
38
56
|
}
|
|
39
57
|
//# sourceMappingURL=EntryDetail.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntryDetail.js","sourceRoot":"","sources":["../../../../src/native/shared/ui/EntryDetail.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAE7D,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"EntryDetail.js","sourceRoot":"","sources":["../../../../src/native/shared/ui/EntryDetail.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeedbackScreenHeader.d.ts","sourceRoot":"","sources":["../../../../src/native/shared/ui/FeedbackScreenHeader.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FeedbackScreenHeader.d.ts","sourceRoot":"","sources":["../../../../src/native/shared/ui/FeedbackScreenHeader.tsx"],"names":[],"mappings":"AAQA,wBAAgB,oBAAoB,gCA8DnC"}
|
|
@@ -4,15 +4,20 @@ import { useSafeAreaInsets } from "react-native-safe-area-context";
|
|
|
4
4
|
import { useFeedbackBody } from "../../../shared/context/FeedbackBodyProvider";
|
|
5
5
|
import { useFeedbackUi } from "../../../shared/context/FeedbackProvider";
|
|
6
6
|
import { createEntryLabel, entryStatusChoices } from "../../../shared/helpers";
|
|
7
|
+
import { allowAuthenticatedAction } from "../../../shared/helpers";
|
|
7
8
|
import { ChoiceChips, FeedbackBoard } from "./primitives";
|
|
8
9
|
export function FeedbackScreenHeader() {
|
|
9
|
-
const { query, setShowForm, setQuery, setIsSearching, enabledKinds, statusFilter, setStatusFilter, } = useFeedbackBody();
|
|
10
|
+
const { query, setShowForm, setQuery, setIsSearching, enabledKinds, statusFilter, setStatusFilter, isAuthenticated, onUnauthenticated, } = useFeedbackBody();
|
|
10
11
|
const { messages, theme } = useFeedbackUi();
|
|
11
12
|
const { top } = useSafeAreaInsets();
|
|
12
13
|
const pageTitle = enabledKinds.length === 1
|
|
13
14
|
? messages.kindsPlural[enabledKinds.at(0)]
|
|
14
15
|
: messages.board.title;
|
|
15
|
-
return (_jsxs(FeedbackBoard.Header, { style: { padding: theme.spacing, paddingTop: top }, children: [_jsx(FeedbackBoard.Title, { children: pageTitle }), _jsx(Text, { style: { color: theme.colors.mutedText }, children: messages.board.subtitle }), _jsx(ChoiceChips, { accessibilityLabel: messages.board.statusFilter, options: entryStatusChoices(messages), value: statusFilter, onValueChange: setStatusFilter }), _jsx(Pressable, { onPress: () =>
|
|
16
|
+
return (_jsxs(FeedbackBoard.Header, { style: { padding: theme.spacing, paddingTop: top }, children: [_jsx(FeedbackBoard.Title, { children: pageTitle }), _jsx(Text, { style: { color: theme.colors.mutedText }, children: messages.board.subtitle }), _jsx(ChoiceChips, { accessibilityLabel: messages.board.statusFilter, options: entryStatusChoices(messages), value: statusFilter, onValueChange: setStatusFilter }), _jsx(Pressable, { disabled: isAuthenticated === undefined, onPress: () => {
|
|
17
|
+
if (allowAuthenticatedAction(isAuthenticated, onUnauthenticated)) {
|
|
18
|
+
setShowForm(true);
|
|
19
|
+
}
|
|
20
|
+
}, style: {
|
|
16
21
|
alignSelf: "flex-start",
|
|
17
22
|
paddingVertical: 9,
|
|
18
23
|
paddingHorizontal: 12,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeedbackScreenHeader.js","sourceRoot":"","sources":["../../../../src/native/shared/ui/FeedbackScreenHeader.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE1D,MAAM,UAAU,oBAAoB;IAClC,MAAM,EACJ,KAAK,EACL,WAAW,EACX,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,eAAe,
|
|
1
|
+
{"version":3,"file":"FeedbackScreenHeader.js","sourceRoot":"","sources":["../../../../src/native/shared/ui/FeedbackScreenHeader.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE1D,MAAM,UAAU,oBAAoB;IAClC,MAAM,EACJ,KAAK,EACL,WAAW,EACX,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,eAAe,EACf,iBAAiB,GAClB,GAAG,eAAe,EAAE,CAAC;IACtB,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,aAAa,EAAE,CAAC;IAC5C,MAAM,EAAE,GAAG,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAEpC,MAAM,SAAS,GACb,YAAY,CAAC,MAAM,KAAK,CAAC;QACvB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC;QAC3C,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;IAE3B,OAAO,CACL,MAAC,aAAa,CAAC,MAAM,IAAC,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,aACtE,KAAC,aAAa,CAAC,KAAK,cAAE,SAAS,GAAuB,EACtD,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,YAC3C,QAAQ,CAAC,KAAK,CAAC,QAAQ,GACnB,EACP,KAAC,WAAW,IACV,kBAAkB,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,EAC/C,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EACrC,KAAK,EAAE,YAAY,EACnB,aAAa,EAAE,eAAe,GAC9B,EACF,KAAC,SAAS,IACR,QAAQ,EAAE,eAAe,KAAK,SAAS,EACvC,OAAO,EAAE,GAAG,EAAE;oBACZ,IAAI,wBAAwB,CAAC,eAAe,EAAE,iBAAiB,CAAC,EAAE,CAAC;wBACjE,WAAW,CAAC,IAAI,CAAC,CAAC;oBACpB,CAAC;gBACH,CAAC,EACD,KAAK,EAAE;oBACL,SAAS,EAAE,YAAY;oBACvB,eAAe,EAAE,CAAC;oBAClB,iBAAiB,EAAE,EAAE;oBACrB,YAAY,EAAE,CAAC;oBACf,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;iBACtC,YAED,KAAC,IAAI,IACH,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,iBAAiB,EAAE,UAAU,EAAE,KAAK,EAAE,YAElE,gBAAgB,CAAC,YAAY,EAAE,QAAQ,CAAC,GACpC,GACG,EACZ,KAAC,aAAa,CAAC,MAAM,IACnB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE;oBACnB,QAAQ,CAAC,CAAC,CAAC,CAAC;oBACZ,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACtC,CAAC,GACD,IACmB,CACxB,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeedbackScreenList.d.ts","sourceRoot":"","sources":["../../../../src/native/shared/ui/FeedbackScreenList.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FeedbackScreenList.d.ts","sourceRoot":"","sources":["../../../../src/native/shared/ui/FeedbackScreenList.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAM9E,wBAAgB,kBAAkB,CAAC,EACjC,cAAsB,EACtB,iBAAwB,EACxB,WAAW,EACX,aAAa,GACd,EAAE,uBAAuB,+BAiGzB"}
|
|
@@ -2,13 +2,13 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
2
2
|
import { ActivityIndicator, Text } from "react-native";
|
|
3
3
|
import { useFeedbackBody } from "../../../shared/context/FeedbackBodyProvider.js";
|
|
4
4
|
import { useFeedbackUi } from "../../../shared/context/FeedbackProvider.js";
|
|
5
|
-
import { createEntryLabel } from "../../../shared/helpers.js";
|
|
5
|
+
import { allowAuthenticatedAction, createEntryLabel, } from "../../../shared/helpers.js";
|
|
6
6
|
import { Button } from "./Button.js";
|
|
7
7
|
import { EntryCard } from "./EntryCard.js";
|
|
8
8
|
import { EntryDetail } from "./EntryDetail.js";
|
|
9
9
|
import { FeedbackBoard } from "./primitives.js";
|
|
10
10
|
export function FeedbackScreenList({ hideBackButton = false, showSelectedEntry = true, onEntryOpen, onCreateEntry, }) {
|
|
11
|
-
const { hooks, entrySort,
|
|
11
|
+
const { hooks, entrySort, enabledKinds, statusFilter, selectedEntryId, query, debouncedQuery, setSelectedEntryId, setShowForm, emptyState, loading: loadingIndicator, isAuthenticated, onUnauthenticated, } = useFeedbackBody();
|
|
12
12
|
const { messages, theme } = useFeedbackUi();
|
|
13
13
|
const list = hooks.useEntries({
|
|
14
14
|
sort: entrySort,
|
|
@@ -20,13 +20,21 @@ export function FeedbackScreenList({ hideBackButton = false, showSelectedEntry =
|
|
|
20
20
|
kinds: enabledKinds,
|
|
21
21
|
statusFilter,
|
|
22
22
|
});
|
|
23
|
-
const
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
|
|
23
|
+
const normalizedQuery = query.trim();
|
|
24
|
+
const normalizedDebouncedQuery = debouncedQuery.trim();
|
|
25
|
+
const searching = normalizedQuery.length > 0;
|
|
26
|
+
const entries = searching ? search : list.results;
|
|
27
|
+
const createEntry = () => {
|
|
28
|
+
if (allowAuthenticatedAction(isAuthenticated, onUnauthenticated)) {
|
|
29
|
+
(onCreateEntry ?? (() => setShowForm(true)))();
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
const loading = searching
|
|
33
|
+
? normalizedQuery !== normalizedDebouncedQuery || search === undefined
|
|
27
34
|
: list.status === "LoadingFirstPage";
|
|
28
|
-
return (_jsxs(_Fragment, { children: [showSelectedEntry && selectedEntryId ? (_jsx(FeedbackBoard.List, { style: { padding: theme.spacing }, children: _jsx(EntryDetail, { entryId: selectedEntryId, hideBackButton: hideBackButton, onBack: () => setSelectedEntryId(null) }) })) : loading ? (_jsx(FeedbackBoard.State, { children: loadingIndicator ?? (_jsx(ActivityIndicator, { size: "large", color: theme.colors.primary })) })) : entries !== undefined && entries.length === 0 ? (_jsxs(FeedbackBoard.State, { children: [emptyState, _jsx(Text, { style: { color: theme.colors.mutedText, textAlign: "center" }, children:
|
|
35
|
+
return (_jsxs(_Fragment, { children: [showSelectedEntry && selectedEntryId ? (_jsx(FeedbackBoard.List, { style: { padding: theme.spacing }, children: _jsx(EntryDetail, { entryId: selectedEntryId, hideBackButton: hideBackButton, onBack: () => setSelectedEntryId(null) }) })) : loading ? (_jsx(FeedbackBoard.State, { children: loadingIndicator ?? (_jsx(ActivityIndicator, { size: "large", color: theme.colors.primary })) })) : entries !== undefined && entries.length === 0 ? (_jsxs(FeedbackBoard.State, { children: [emptyState, _jsx(Text, { style: { color: theme.colors.mutedText, textAlign: "center" }, children: searching
|
|
29
36
|
? messages.board.noSearchResults
|
|
30
|
-
: messages.board.noEntries }), _jsx(Button, { label: createEntryLabel(enabledKinds, messages), onPress: createEntry, variant: "primary" })] })) : (_jsx(FeedbackBoard.List, { style: { padding: theme.spacing }, children: (entries ?? []).map((entry) => (_jsx(EntryCard, { entry: entry, hooks: hooks, onOpen: () => onEntryOpen(entry.id) }, entry.id))) })), !
|
|
37
|
+
: messages.board.noEntries }), _jsx(Button, { label: createEntryLabel(enabledKinds, messages), onPress: createEntry, variant: "primary", disabled: isAuthenticated === undefined })] })) : (_jsx(FeedbackBoard.List, { style: { padding: theme.spacing }, children: (entries ?? []).map((entry) => (_jsx(EntryCard, { entry: entry, hooks: hooks, onOpen: () => onEntryOpen(entry.id) }, entry.id))) })), !searching &&
|
|
38
|
+
(list.status === "CanLoadMore" || list.status === "LoadingMore") && (_jsx(Button, { label: messages.board.loadMore, disabled: list.status === "LoadingMore", onPress: () => list.loadMore(hooks.pageSizes.entries) }))] }));
|
|
31
39
|
}
|
|
32
40
|
//# sourceMappingURL=FeedbackScreenList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeedbackScreenList.js","sourceRoot":"","sources":["../../../../src/native/shared/ui/FeedbackScreenList.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,iDAAiD,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAC5E,OAAO,
|
|
1
|
+
{"version":3,"file":"FeedbackScreenList.js","sourceRoot":"","sources":["../../../../src/native/shared/ui/FeedbackScreenList.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NewEntry.d.ts","sourceRoot":"","sources":["../../../../src/native/shared/ui/NewEntry.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"NewEntry.d.ts","sourceRoot":"","sources":["../../../../src/native/shared/ui/NewEntry.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAejD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAM3E,wBAAgB,gBAAgB,CAAC,EAC/B,cAAc,EACd,SAAS,GACV,EAAE,6BAA6B,GAAG;IACjC,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B,+BA6HA;AAED,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,YAAY,EACZ,KAAK,EACL,aAAa,EACb,IAAI,EACJ,YAAY,EACZ,SAAS,EACT,gBAAgB,GACjB,EAAE,6BAA6B,GAAG;IACjC,IAAI,EAAE,SAAS,CAAC;IAChB,YAAY,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,+BAqNA"}
|
|
@@ -3,9 +3,11 @@ import { useMemo, useState } from "react";
|
|
|
3
3
|
import { Alert, Modal, Platform, Pressable, ScrollView, Text, View, } from "react-native";
|
|
4
4
|
import { useFeedbackBody } from "../../../shared/context/FeedbackBodyProvider";
|
|
5
5
|
import { useFeedbackUi } from "../../../shared/context/FeedbackProvider";
|
|
6
|
+
import { allowAuthenticatedAction } from "../../../shared/helpers.js";
|
|
6
7
|
import { collectEntryMetadata } from "../../../shared/metadata";
|
|
7
8
|
import { EntryDetail } from "./EntryDetail";
|
|
8
9
|
import { ChoiceChips, FeedbackForm } from "./primitives";
|
|
10
|
+
import { useNativeAction } from "../helpers.js";
|
|
9
11
|
export function CreateEntryModal({ onRequestClose, onCreated, }) {
|
|
10
12
|
const { enabledKinds } = useFeedbackBody();
|
|
11
13
|
const { messages, theme } = useFeedbackUi();
|
|
@@ -55,10 +57,10 @@ export function CreateEntryModal({ onRequestClose, onCreated, }) {
|
|
|
55
57
|
}, children: previewEntryId !== null ? (_jsx(EntryDetail, { entryId: previewEntryId, onBack: () => setPreviewEntryId(null) })) : (_jsx(CreateEntryForm, { kind: kind, onKindChange: setKind, title: title, onTitleChange: setTitle, body: body, onBodyChange: setBody, onCreated: onCreated, onOpenSuggestion: setPreviewEntryId })) })] })] }) }));
|
|
56
58
|
}
|
|
57
59
|
export function CreateEntryForm({ kind, onKindChange, title, onTitleChange, body, onBodyChange, onCreated, onOpenSuggestion, }) {
|
|
58
|
-
const { hooks, enabledKinds, collectMetadata, collectStandardMetadata } = useFeedbackBody();
|
|
60
|
+
const { hooks, enabledKinds, collectMetadata, collectStandardMetadata, isAuthenticated, onUnauthenticated, } = useFeedbackBody();
|
|
59
61
|
const { messages, theme } = useFeedbackUi();
|
|
60
|
-
const [submitting, setSubmitting] = useState(false);
|
|
61
62
|
const create = hooks.useCreateEntry();
|
|
63
|
+
const action = useNativeAction();
|
|
62
64
|
const similar = hooks.useSimilarEntries({ title, body, kind, limit: 3 });
|
|
63
65
|
const suggestions = useMemo(() => {
|
|
64
66
|
if (similar === undefined)
|
|
@@ -66,11 +68,14 @@ export function CreateEntryForm({ kind, onKindChange, title, onTitleChange, body
|
|
|
66
68
|
return [...similar.exact, ...similar.similar];
|
|
67
69
|
}, [similar]);
|
|
68
70
|
const submit = async () => {
|
|
69
|
-
if (
|
|
71
|
+
if (action.pending ||
|
|
72
|
+
title.trim().length === 0 ||
|
|
73
|
+
body.trim().length === 0) {
|
|
70
74
|
return;
|
|
71
75
|
}
|
|
72
|
-
|
|
73
|
-
|
|
76
|
+
if (!allowAuthenticatedAction(isAuthenticated, onUnauthenticated))
|
|
77
|
+
return;
|
|
78
|
+
await action.run(async () => {
|
|
74
79
|
const metadata = await collectEntryMetadata(collectMetadata, kind, collectStandardMetadata);
|
|
75
80
|
onCreated(await create({
|
|
76
81
|
kind,
|
|
@@ -78,13 +83,10 @@ export function CreateEntryForm({ kind, onKindChange, title, onTitleChange, body
|
|
|
78
83
|
body,
|
|
79
84
|
...(metadata === undefined ? {} : { metadata }),
|
|
80
85
|
}));
|
|
81
|
-
}
|
|
82
|
-
finally {
|
|
83
|
-
setSubmitting(false);
|
|
84
|
-
}
|
|
86
|
+
}, "Could not submit feedback");
|
|
85
87
|
};
|
|
86
88
|
const requestSubmit = () => {
|
|
87
|
-
if (
|
|
89
|
+
if (action.pending ||
|
|
88
90
|
similar === undefined ||
|
|
89
91
|
title.trim().length === 0 ||
|
|
90
92
|
body.trim().length === 0) {
|
|
@@ -153,6 +155,6 @@ export function CreateEntryForm({ kind, onKindChange, title, onTitleChange, body
|
|
|
153
155
|
}, children: entry.body }), _jsxs(Text, { style: {
|
|
154
156
|
color: theme.colors.mutedText,
|
|
155
157
|
fontSize: 12,
|
|
156
|
-
}, children: ["\u25B2 ", entry.upvoteCount, " \u00B7", " ", messages.entry.comments(entry.commentCount)] })] }, entry.id)))] })) : null, _jsx(FeedbackForm.Submit, { submitting:
|
|
158
|
+
}, children: ["\u25B2 ", entry.upvoteCount, " \u00B7", " ", messages.entry.comments(entry.commentCount)] })] }, entry.id)))] })) : null, _jsx(FeedbackForm.Submit, { submitting: action.pending, disabled: isAuthenticated === undefined || action.pending, onPress: requestSubmit })] }));
|
|
157
159
|
}
|
|
158
160
|
//# sourceMappingURL=NewEntry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NewEntry.js","sourceRoot":"","sources":["../../../../src/native/shared/ui/NewEntry.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EACL,KAAK,EACL,KAAK,EACL,QAAQ,EACR,SAAS,EACT,UAAU,EACV,IAAI,EACJ,IAAI,GACL,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"NewEntry.js","sourceRoot":"","sources":["../../../../src/native/shared/ui/NewEntry.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EACL,KAAK,EACL,KAAK,EACL,QAAQ,EACR,SAAS,EACT,UAAU,EACV,IAAI,EACJ,IAAI,GACL,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,UAAU,gBAAgB,CAAC,EAC/B,cAAc,EACd,SAAS,GAGV;IACC,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,EAAE,CAAC;IAC3C,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,aAAa,EAAE,CAAC;IAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAC;IAEpC,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAE1E,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAY,YAAY,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC;IAC3E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAErC,MAAM,SAAS,GACb,YAAY,CAAC,MAAM,KAAK,CAAC;QACvB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC;QAC3C,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC;IAEjC,OAAO,CACL,KAAC,KAAK,IACJ,OAAO,QACP,aAAa,EAAC,OAAO,EACrB,iBAAiB,EAAE,WAAW,EAC9B,mBAAmB,EAAE,KAAK,EAC1B,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAC,QAAQ,YAEb,MAAC,IAAI,IACH,KAAK,EAAE;gBACL,IAAI,EAAE,CAAC;gBACP,cAAc,EAAE,UAAU;gBAC1B,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa;aACjE,aAEA,KAAK,IAAI,CACR,KAAC,SAAS,IACR,iBAAiB,EAAC,QAAQ,EAC1B,kBAAkB,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EACxC,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE;wBACL,QAAQ,EAAE,UAAU;wBACpB,GAAG,EAAE,CAAC;wBACN,KAAK,EAAE,CAAC;wBACR,MAAM,EAAE,CAAC;wBACT,IAAI,EAAE,CAAC;qBACR,GACD,CACH,EAED,MAAC,IAAI,IACH,KAAK,EAAE;wBACL,IAAI,EAAE,CAAC;wBACP,SAAS,EAAE,GAAG;wBACd,QAAQ,EAAE,QAAQ;wBAClB,mBAAmB,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC;wBACrC,oBAAoB,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC;wBACtC,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU;qBACzC,aAED,MAAC,IAAI,IACH,KAAK,EAAE;gCACL,aAAa,EAAE,KAAK;gCACpB,UAAU,EAAE,QAAQ;gCACpB,cAAc,EAAE,eAAe;gCAC/B,iBAAiB,EAAE,EAAE;gCACrB,eAAe,EAAE,EAAE;gCACnB,iBAAiB,EAAE,CAAC;gCACpB,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;6BACvC,aAED,KAAC,IAAI,IACH,KAAK,EAAE;wCACL,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;wCACxB,QAAQ,EAAE,EAAE;wCACZ,UAAU,EAAE,KAAK;qCAClB,YAEA,SAAS,GACL,EAEP,KAAC,SAAS,IACR,iBAAiB,EAAC,QAAQ,EAC1B,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,CAAC,YAEV,KAAC,IAAI,IACH,KAAK,EAAE;4CACL,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;4CAC3B,UAAU,EAAE,KAAK;yCAClB,YAEA,QAAQ,CAAC,IAAI,CAAC,MAAM,GAChB,GACG,IACP,EAEP,KAAC,UAAU,IACT,yBAAyB,EAAC,SAAS,EACnC,mBAAmB,EAAE,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,EACtD,8BAA8B,EAAC,WAAW,EAC1C,qBAAqB,EAAE;gCACrB,OAAO,EAAE,EAAE;gCACX,aAAa,EAAE,EAAE;6BAClB,YAEA,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,CACzB,KAAC,WAAW,IACV,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,GACrC,CACH,CAAC,CAAC,CAAC,CACF,KAAC,eAAe,IACd,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,OAAO,EACrB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,QAAQ,EACvB,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,OAAO,EACrB,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,iBAAiB,GACnC,CACH,GACU,IACR,IACF,GACD,CACT,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAC9B,IAAI,EACJ,YAAY,EACZ,KAAK,EACL,aAAa,EACb,IAAI,EACJ,YAAY,EACZ,SAAS,EACT,gBAAgB,GASjB;IACC,MAAM,EACJ,KAAK,EACL,YAAY,EACZ,eAAe,EACf,uBAAuB,EACvB,eAAe,EACf,iBAAiB,GAClB,GAAG,eAAe,EAAE,CAAC;IACtB,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,aAAa,EAAE,CAAC;IAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,KAAK,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAEzE,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE;QAC/B,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE;QACxB,IACE,MAAM,CAAC,OAAO;YACd,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;YACzB,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EACxB,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,CAAC,wBAAwB,CAAC,eAAe,EAAE,iBAAiB,CAAC;YAAE,OAAO;QAE1E,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;YAC1B,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CACzC,eAAe,EACf,IAAI,EACJ,uBAAuB,CACxB,CAAC;YACF,SAAS,CACP,MAAM,MAAM,CAAC;gBACX,IAAI;gBACJ,KAAK;gBACL,IAAI;gBACJ,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;aAChD,CAAC,CACH,CAAC;QACJ,CAAC,EAAE,2BAA2B,CAAC,CAAC;IAClC,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,IACE,MAAM,CAAC,OAAO;YACd,OAAO,KAAK,SAAS;YACrB,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;YACzB,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EACxB,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,KAAK,MAAM,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,KAAK,CAAC,KAAK,CACT,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YACtB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc;YAC9B,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EACpC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAC9B;YACE;gBACE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM;gBAC1B,KAAK,EAAE,QAAQ;aAChB;YACD;gBACE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,YAAY;gBAChC,OAAO,EAAE,GAAG,EAAE;oBACZ,KAAK,MAAM,EAAE,CAAC;gBAChB,CAAC;aACF;SACF,CACF,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,CACL,MAAC,YAAY,CAAC,IAAI,eACf,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAC1B,8BACE,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,YACzD,QAAQ,CAAC,IAAI,CAAC,IAAI,GACd,EACP,KAAC,WAAW,IACV,kBAAkB,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,EACtC,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;4BACpC,KAAK;4BACL,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;yBAC7B,CAAC,CAAC,EACH,KAAK,EAAE,IAAI,EACX,aAAa,EAAE,YAAY,GAC3B,IACD,CACJ,EACD,KAAC,YAAY,CAAC,KAAK,IACjB,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,aAAa,EAC3B,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,GAC3C,EACF,KAAC,YAAY,CAAC,QAAQ,IACpB,KAAK,EAAE,IAAI,EACX,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,GAC1C,EACD,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACxB,MAAC,IAAI,IACH,KAAK,EAAE;oBACL,GAAG,EAAE,CAAC;oBACN,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,CAAC;oBACd,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;oBAChC,YAAY,EAAE,KAAK,CAAC,MAAM;oBAC1B,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;iBAC3C,aAED,KAAC,IAAI,IACH,KAAK,EAAE;4BACL,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;4BACxB,UAAU,EAAE,KAAK;yBAClB,YAEA,OAAO,EAAE,KAAK,CAAC,MAAM;4BACpB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc;4BAC9B,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,GAC/B,EAEN,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC1B,MAAC,SAAS,IAER,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,EACzC,KAAK,EAAE;4BACL,GAAG,EAAE,CAAC;4BACN,OAAO,EAAE,EAAE;4BACX,WAAW,EAAE,CAAC;4BACd,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;4BAChC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;4BAC3C,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;yBACtC,aAED,MAAC,IAAI,IACH,KAAK,EAAE;oCACL,aAAa,EAAE,KAAK;oCACpB,UAAU,EAAE,QAAQ;oCACpB,cAAc,EAAE,eAAe;oCAC/B,GAAG,EAAE,CAAC;iCACP,aAED,KAAC,IAAI,IACH,KAAK,EAAE;4CACL,UAAU,EAAE,CAAC;4CACb,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS;4CAC7B,QAAQ,EAAE,EAAE;4CACZ,UAAU,EAAE,KAAK;yCAClB,YAEA,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GACtB,EAEP,KAAC,IAAI,IACH,KAAK,EAAE;4CACL,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS;4CAC7B,QAAQ,EAAE,EAAE;yCACb,YAEA,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAC3B,IACF,EAEP,KAAC,IAAI,IACH,aAAa,EAAE,CAAC,EAChB,KAAK,EAAE;oCACL,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;oCACxB,UAAU,EAAE,KAAK;iCAClB,YAEA,KAAK,CAAC,KAAK,GACP,EAEP,KAAC,IAAI,IACH,aAAa,EAAE,CAAC,EAChB,KAAK,EAAE;oCACL,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS;oCAC7B,UAAU,EAAE,EAAE;iCACf,YAEA,KAAK,CAAC,IAAI,GACN,EAEP,MAAC,IAAI,IACH,KAAK,EAAE;oCACL,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS;oCAC7B,QAAQ,EAAE,EAAE;iCACb,wBAEE,KAAK,CAAC,WAAW,aAAI,GAAG,EAC1B,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,IACvC,KApEF,KAAK,CAAC,EAAE,CAqEH,CACb,CAAC,IACG,CACR,CAAC,CAAC,CAAC,IAAI,EACR,KAAC,YAAY,CAAC,MAAM,IAClB,UAAU,EAAE,MAAM,CAAC,OAAO,EAC1B,QAAQ,EAAE,eAAe,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,EACzD,OAAO,EAAE,aAAa,GACtB,IACgB,CACrB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { RoadmapScreenProps } from "../../../shared/types/index.js";
|
|
2
|
+
export declare function RoadmapScreen({ hooks, messages, theme, unstyled, onEntryOpen, onUnauthenticated, pageSize, entryPageSize, ...colors }: RoadmapScreenProps): import("react").JSX.Element;
|
|
3
|
+
//# sourceMappingURL=RoadmapScreen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RoadmapScreen.d.ts","sourceRoot":"","sources":["../../../../src/native/shared/ui/RoadmapScreen.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAKzE,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,QAAQ,EACR,aAAa,EACb,GAAG,MAAM,EACV,EAAE,kBAAkB,+BAapB"}
|