convex-feedback-ui 0.1.2 → 0.1.3
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 +115 -18
- package/dist/.tsbuildinfo +1 -1
- package/dist/native/expo/ExpoFeedbackBody.d.ts +4 -0
- package/dist/native/expo/ExpoFeedbackBody.d.ts.map +1 -0
- package/dist/native/expo/ExpoFeedbackBody.js +26 -0
- package/dist/native/expo/ExpoFeedbackBody.js.map +1 -0
- package/dist/native/expo/FeedbackScreen.d.ts +3 -0
- package/dist/native/expo/FeedbackScreen.d.ts.map +1 -0
- package/dist/native/expo/FeedbackScreen.js +9 -0
- package/dist/native/expo/FeedbackScreen.js.map +1 -0
- package/dist/native/expo/FeedbackStack.d.ts +3 -0
- package/dist/native/expo/FeedbackStack.d.ts.map +1 -0
- package/dist/native/expo/FeedbackStack.js +41 -0
- package/dist/native/expo/FeedbackStack.js.map +1 -0
- package/dist/native/expo/index.d.ts +9 -0
- package/dist/native/expo/index.d.ts.map +1 -0
- package/dist/native/expo/index.js +7 -0
- package/dist/native/expo/index.js.map +1 -0
- package/dist/native/expo/types.d.ts +20 -0
- package/dist/native/expo/types.d.ts.map +1 -0
- package/dist/native/expo/types.js +2 -0
- package/dist/native/expo/types.js.map +1 -0
- package/dist/native/native/FeedbackScreen.d.ts +3 -0
- package/dist/native/native/FeedbackScreen.d.ts.map +1 -0
- package/dist/native/native/FeedbackScreen.js +9 -0
- package/dist/native/native/FeedbackScreen.js.map +1 -0
- package/dist/native/native/index.d.ts +8 -0
- package/dist/native/native/index.d.ts.map +1 -0
- package/dist/native/native/index.js +7 -0
- package/dist/native/native/index.js.map +1 -0
- package/dist/native/shared/helpers.d.ts +3 -0
- package/dist/native/shared/helpers.d.ts.map +1 -0
- package/dist/native/shared/helpers.js +4 -0
- package/dist/native/shared/helpers.js.map +1 -0
- package/dist/native/shared/ui/BodyContent.d.ts +3 -0
- package/dist/native/shared/ui/BodyContent.d.ts.map +1 -0
- package/dist/native/shared/ui/BodyContent.js +18 -0
- package/dist/native/shared/ui/BodyContent.js.map +1 -0
- package/dist/native/shared/ui/Button.d.ts +5 -0
- package/dist/native/shared/ui/Button.d.ts.map +1 -0
- package/dist/native/shared/ui/Button.js +15 -0
- package/dist/native/shared/ui/Button.js.map +1 -0
- package/dist/native/shared/ui/CommentBranch.d.ts +3 -0
- package/dist/native/shared/ui/CommentBranch.d.ts.map +1 -0
- package/dist/native/shared/ui/CommentBranch.js +35 -0
- package/dist/native/shared/ui/CommentBranch.js.map +1 -0
- package/dist/native/shared/ui/EntryCard.d.ts +3 -0
- package/dist/native/shared/ui/EntryCard.d.ts.map +1 -0
- package/dist/native/shared/ui/EntryCard.js +13 -0
- package/dist/native/shared/ui/EntryCard.js.map +1 -0
- package/dist/native/shared/ui/EntryDetail.d.ts +3 -0
- package/dist/native/shared/ui/EntryDetail.d.ts.map +1 -0
- package/dist/native/shared/ui/EntryDetail.js +37 -0
- package/dist/native/shared/ui/EntryDetail.js.map +1 -0
- package/dist/native/shared/ui/FeedbackScreenHeader.d.ts +2 -0
- package/dist/native/shared/ui/FeedbackScreenHeader.d.ts.map +1 -0
- package/dist/native/shared/ui/FeedbackScreenHeader.js +20 -0
- package/dist/native/shared/ui/FeedbackScreenHeader.js.map +1 -0
- package/dist/native/shared/ui/FeedbackScreenList.d.ts +3 -0
- package/dist/native/shared/ui/FeedbackScreenList.d.ts.map +1 -0
- package/dist/native/shared/ui/FeedbackScreenList.js +19 -0
- package/dist/native/shared/ui/FeedbackScreenList.js.map +1 -0
- package/dist/native/shared/ui/NewEntry.d.ts +5 -0
- package/dist/native/shared/ui/NewEntry.d.ts.map +1 -0
- package/dist/native/shared/ui/NewEntry.js +158 -0
- package/dist/native/shared/ui/NewEntry.js.map +1 -0
- package/dist/native/shared/ui/ReplyList.d.ts +3 -0
- package/dist/native/shared/ui/ReplyList.d.ts.map +1 -0
- package/dist/native/shared/ui/ReplyList.js +19 -0
- package/dist/native/shared/ui/ReplyList.js.map +1 -0
- package/dist/native/{primitives.d.ts → shared/ui/primitives.d.ts} +10 -12
- package/dist/native/shared/ui/primitives.d.ts.map +1 -0
- package/dist/native/{primitives.js → shared/ui/primitives.js} +19 -25
- package/dist/native/shared/ui/primitives.js.map +1 -0
- package/dist/react/{context.d.ts → css.d.ts} +2 -4
- package/dist/react/css.d.ts.map +1 -0
- package/dist/react/css.js +18 -0
- package/dist/react/css.js.map +1 -0
- package/dist/react/index.d.ts +1 -1
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +1 -1
- package/dist/react/index.js.map +1 -1
- package/dist/react/primitives.d.ts.map +1 -1
- package/dist/react/primitives.js +2 -1
- package/dist/react/primitives.js.map +1 -1
- package/dist/react/screen.d.ts +3 -3
- package/dist/react/screen.d.ts.map +1 -1
- package/dist/react/screen.js +25 -22
- package/dist/react/screen.js.map +1 -1
- package/dist/shared/context/FeedbackBodyProvider.d.ts +5 -0
- package/dist/shared/context/FeedbackBodyProvider.d.ts.map +1 -0
- package/dist/shared/context/FeedbackBodyProvider.js +43 -0
- package/dist/shared/context/FeedbackBodyProvider.js.map +1 -0
- package/dist/{native/context.d.ts → shared/context/FeedbackProvider.d.ts} +2 -2
- package/dist/shared/context/FeedbackProvider.d.ts.map +1 -0
- package/dist/{native/context.js → shared/context/FeedbackProvider.js} +3 -3
- package/dist/shared/context/FeedbackProvider.js.map +1 -0
- package/dist/shared/helpers.d.ts +7 -0
- package/dist/shared/helpers.d.ts.map +1 -0
- package/dist/shared/helpers.js +24 -0
- package/dist/shared/helpers.js.map +1 -0
- package/dist/shared/messages.d.ts.map +1 -1
- package/dist/shared/messages.js +23 -14
- package/dist/shared/messages.js.map +1 -1
- package/dist/shared/theme.d.ts.map +1 -1
- package/dist/shared/theme.js +1 -0
- package/dist/shared/theme.js.map +1 -1
- package/dist/shared/types/context.d.ts +4 -0
- package/dist/shared/types/context.d.ts.map +1 -1
- package/dist/shared/types/messages.d.ts +12 -1
- package/dist/shared/types/messages.d.ts.map +1 -1
- package/dist/shared/types/screen.d.ts +55 -18
- package/dist/shared/types/screen.d.ts.map +1 -1
- package/dist/shared/types/theme.d.ts +4 -0
- package/dist/shared/types/theme.d.ts.map +1 -1
- package/package.json +27 -12
- package/src/native/expo/ExpoFeedbackBody.tsx +48 -0
- package/src/native/expo/FeedbackScreen.tsx +37 -0
- package/src/native/expo/FeedbackStack.tsx +99 -0
- package/src/native/expo/README.md +17 -0
- package/src/native/expo/index.ts +8 -0
- package/src/native/expo/types.ts +23 -0
- package/src/native/native/FeedbackScreen.tsx +37 -0
- package/src/native/native/index.ts +7 -0
- package/src/native/shared/helpers.ts +9 -0
- package/src/native/shared/ui/BodyContent.tsx +43 -0
- package/src/native/shared/ui/Button.tsx +29 -0
- package/src/native/shared/ui/CommentBranch.tsx +88 -0
- package/src/native/shared/ui/EntryCard.tsx +37 -0
- package/src/native/shared/ui/EntryDetail.tsx +103 -0
- package/src/native/shared/ui/FeedbackScreenHeader.tsx +40 -0
- package/src/native/shared/ui/FeedbackScreenList.tsx +61 -0
- package/src/native/shared/ui/NewEntry.tsx +375 -0
- package/src/native/shared/ui/ReplyList.tsx +41 -0
- package/src/native/{primitives.tsx → shared/ui/primitives.tsx} +84 -92
- package/src/react/{context.tsx → css.tsx} +2 -44
- package/src/react/index.ts +1 -1
- package/src/react/primitives.tsx +2 -1
- package/src/react/screen.tsx +67 -123
- package/src/shared/context/FeedbackBodyProvider.tsx +82 -0
- package/src/{native/context.tsx → shared/context/FeedbackProvider.tsx} +3 -3
- package/src/shared/helpers.ts +33 -0
- package/src/shared/messages.ts +23 -22
- package/src/shared/theme.ts +1 -0
- package/src/shared/types/context.ts +5 -0
- package/src/shared/types/messages.ts +16 -1
- package/src/shared/types/screen.ts +69 -23
- package/src/shared/types/theme.ts +5 -0
- package/dist/native/context.d.ts.map +0 -1
- package/dist/native/context.js.map +0 -1
- package/dist/native/index.d.ts +0 -7
- package/dist/native/index.d.ts.map +0 -1
- package/dist/native/index.js +0 -6
- package/dist/native/index.js.map +0 -1
- package/dist/native/primitives.d.ts.map +0 -1
- package/dist/native/primitives.js.map +0 -1
- package/dist/native/screen.d.ts +0 -3
- package/dist/native/screen.d.ts.map +0 -1
- package/dist/native/screen.js +0 -284
- package/dist/native/screen.js.map +0 -1
- package/dist/react/context.d.ts.map +0 -1
- package/dist/react/context.js +0 -41
- package/dist/react/context.js.map +0 -1
- package/src/native/index.ts +0 -6
- package/src/native/screen.tsx +0 -831
- /package/src/native/{README.md → native/README.md} +0 -0
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type FeedbackScreenBodyProps } from "../../shared/types/index.js";
|
|
2
|
+
import type { FeedbackScreenStackProps } from "./types.js";
|
|
3
|
+
export declare function ExpoFeedbackBody({ useStack, StackOptions, ...props }: FeedbackScreenBodyProps & FeedbackScreenStackProps): import("react").JSX.Element;
|
|
4
|
+
//# sourceMappingURL=ExpoFeedbackBody.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExpoFeedbackBody.d.ts","sourceRoot":"","sources":["../../../src/native/expo/ExpoFeedbackBody.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAI3E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE3D,wBAAgB,gBAAgB,CAAC,EAC/B,QAAe,EACf,YAAY,EACZ,GAAG,KAAK,EACT,EAAE,uBAAuB,GAAG,wBAAwB,+BAiCpD"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useRef } from "react";
|
|
3
|
+
import { useFeedbackBody } from "../../shared/context/FeedbackBodyProvider.js";
|
|
4
|
+
import {} from "../../shared/types/index.js";
|
|
5
|
+
import { FeedbackScreenContent } from "../shared/ui/BodyContent.js";
|
|
6
|
+
import { FeedbackStack } from "./FeedbackStack.js";
|
|
7
|
+
export function ExpoFeedbackBody({ useStack = true, StackOptions, ...props }) {
|
|
8
|
+
const { query, isSearching, setIsSearching, setSelectedEntryId } = useFeedbackBody();
|
|
9
|
+
const searchRef = useRef(null);
|
|
10
|
+
const onEntryOpen = (entryId) => {
|
|
11
|
+
setSelectedEntryId(entryId);
|
|
12
|
+
if ((query || isSearching) && searchRef.current) {
|
|
13
|
+
searchRef.current.blur();
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
const searching = query.trim().length > 0;
|
|
18
|
+
if (searching !== isSearching) {
|
|
19
|
+
setIsSearching(searching);
|
|
20
|
+
}
|
|
21
|
+
}, [query, isSearching, setIsSearching]);
|
|
22
|
+
if (!useStack)
|
|
23
|
+
return _jsx(FeedbackScreenContent, { onEntryOpen: onEntryOpen, ...props });
|
|
24
|
+
return (_jsx(FeedbackStack, { stackOptions: StackOptions, searchRef: searchRef, children: _jsx(FeedbackScreenContent, { hideBackButton: true, showHeader: false, onEntryOpen: onEntryOpen, ...props }) }));
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=ExpoFeedbackBody.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExpoFeedbackBody.js","sourceRoot":"","sources":["../../../src/native/expo/ExpoFeedbackBody.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAG1C,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAgC,MAAM,6BAA6B,CAAC;AAE3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,MAAM,UAAU,gBAAgB,CAAC,EAC/B,QAAQ,GAAG,IAAI,EACf,YAAY,EACZ,GAAG,KAAK,EAC2C;IACnD,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAC9D,eAAe,EAAE,CAAC;IACpB,MAAM,SAAS,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IAElD,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,EAAE;QACtC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,IAAI,WAAW,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YAChD,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QAE1C,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;YAC9B,cAAc,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;IAEzC,IAAI,CAAC,QAAQ;QACX,OAAO,KAAC,qBAAqB,IAAC,WAAW,EAAE,WAAW,KAAM,KAAK,GAAI,CAAC;IAExE,OAAO,CACL,KAAC,aAAa,IAAC,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,YAC7D,KAAC,qBAAqB,IACpB,cAAc,QACd,UAAU,EAAE,KAAK,EACjB,WAAW,EAAE,WAAW,KACpB,KAAK,GACT,GACY,CACjB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { ExpoFeedbackScreenProps } from "./types";
|
|
2
|
+
export declare function FeedbackScreen({ hooks, messages, theme, unstyled, entrySort, commentSort, enabledKinds, maxCommentDepth, debounceDuration, transformComments, renderActor, ...props }: ExpoFeedbackScreenProps): import("react").JSX.Element;
|
|
3
|
+
//# sourceMappingURL=FeedbackScreen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FeedbackScreen.d.ts","sourceRoot":"","sources":["../../../src/native/expo/FeedbackScreen.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAEvD,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,SAAiB,EACjB,WAAmB,EACnB,YAAoB,EACpB,eAAmB,EACnB,gBAAsB,EACtB,iBAAiB,EACjB,WAAW,EACX,GAAG,KAAK,EACT,EAAE,uBAAuB,+BAiBzB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { FeedbackBodyProvider } from "../../shared/context/FeedbackBodyProvider";
|
|
3
|
+
import { FeedbackProvider } from "../../shared/context/FeedbackProvider";
|
|
4
|
+
import { kinds } from "../../shared/helpers";
|
|
5
|
+
import { ExpoFeedbackBody } from "./ExpoFeedbackBody";
|
|
6
|
+
export function FeedbackScreen({ hooks, messages, theme, unstyled, entrySort = "top", commentSort = "top", enabledKinds = kinds, maxCommentDepth = 5, debounceDuration = 300, transformComments, renderActor, ...props }) {
|
|
7
|
+
return (_jsx(FeedbackProvider, { messages: messages, theme: theme, unstyled: unstyled, children: _jsx(FeedbackBodyProvider, { hooks: hooks, entrySort: entrySort, commentSort: commentSort, enabledKinds: enabledKinds, maxCommentDepth: maxCommentDepth, debounceDuration: debounceDuration, transformComments: transformComments, renderActor: renderActor, children: _jsx(ExpoFeedbackBody, { ...props }) }) }));
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=FeedbackScreen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FeedbackScreen.js","sourceRoot":"","sources":["../../../src/native/expo/FeedbackScreen.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,MAAM,UAAU,cAAc,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,SAAS,GAAG,KAAK,EACjB,WAAW,GAAG,KAAK,EACnB,YAAY,GAAG,KAAK,EACpB,eAAe,GAAG,CAAC,EACnB,gBAAgB,GAAG,GAAG,EACtB,iBAAiB,EACjB,WAAW,EACX,GAAG,KAAK,EACgB;IACxB,OAAO,CACL,KAAC,gBAAgB,IAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,YACpE,KAAC,oBAAoB,IACnB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,iBAAiB,EAAE,iBAAiB,EACpC,WAAW,EAAE,WAAW,YAExB,KAAC,gBAAgB,OAAK,KAAK,GAAI,GACV,GACN,CACpB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FeedbackStack.d.ts","sourceRoot":"","sources":["../../../src/native/expo/FeedbackStack.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,YAAY,EACZ,QAAQ,GACT,EAAE,kBAAkB,+BAyFpB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Stack, useRouter } from "expo-router";
|
|
3
|
+
import { useFeedbackBody } from "../../shared/context/FeedbackBodyProvider";
|
|
4
|
+
import { useFeedbackUi } from "../../shared/context/FeedbackProvider";
|
|
5
|
+
export function FeedbackStack({ searchRef, stackOptions, children, }) {
|
|
6
|
+
const { query, enabledKinds, selectedEntryId, setQuery, setShowForm, setIsSearching, setSelectedEntryId, } = useFeedbackBody();
|
|
7
|
+
const { messages, theme } = useFeedbackUi();
|
|
8
|
+
const router = useRouter();
|
|
9
|
+
const canGoBack = !!selectedEntryId || router.canGoBack();
|
|
10
|
+
const handleBackPress = () => {
|
|
11
|
+
if (selectedEntryId === null) {
|
|
12
|
+
router.back();
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
if (searchRef.current && query)
|
|
16
|
+
searchRef.current.focus();
|
|
17
|
+
setSelectedEntryId(null);
|
|
18
|
+
return true;
|
|
19
|
+
};
|
|
20
|
+
const pageTitle = enabledKinds.length === 1
|
|
21
|
+
? messages.kindsPlural[enabledKinds.at(0)]
|
|
22
|
+
: messages.board.title;
|
|
23
|
+
return (_jsxs(_Fragment, { children: [_jsx(Stack.Screen, { options: {
|
|
24
|
+
headerTitle: pageTitle,
|
|
25
|
+
headerShown: true,
|
|
26
|
+
headerTransparent: true,
|
|
27
|
+
headerShadowVisible: true,
|
|
28
|
+
headerBackVisible: false,
|
|
29
|
+
contentStyle: { backgroundColor: theme.colors.background },
|
|
30
|
+
...stackOptions,
|
|
31
|
+
} }), _jsx(Stack.Toolbar, { placement: "right", children: _jsx(Stack.Toolbar.Button, { icon: "plus", variant: "prominent", accessibilityLabel: messages.board.createEntry, onPress: () => setShowForm(true), tintColor: theme.colors.primary }) }), _jsx(Stack.Toolbar, { placement: "left", children: _jsx(Stack.Toolbar.Button, { hidden: !canGoBack, icon: "chevron.backward", onPress: handleBackPress }) }), children, _jsx(Stack.SearchBar, { onChangeText: (q) => {
|
|
32
|
+
if (selectedEntryId)
|
|
33
|
+
setSelectedEntryId(null);
|
|
34
|
+
setQuery(q.nativeEvent.text);
|
|
35
|
+
}, onOpen: () => console.log("opened"), onClose: () => console.log("closed"), onSearchButtonPress: () => console.log("search button pressed"), onCancelButtonPress: () => console.log("cancel button pressed"), onFocus: () => {
|
|
36
|
+
if (selectedEntryId)
|
|
37
|
+
setSelectedEntryId(null);
|
|
38
|
+
setIsSearching(true);
|
|
39
|
+
}, onBlur: () => setIsSearching(false), obscureBackground: false, allowToolbarIntegration: true, hideNavigationBar: false, ref: searchRef, textColor: theme.colors.text }), _jsx(Stack.Toolbar, { placement: "bottom", children: _jsx(Stack.Toolbar.SearchBarSlot, {}) })] }));
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=FeedbackStack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FeedbackStack.js","sourceRoot":"","sources":["../../../src/native/expo/FeedbackStack.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from "../../shared/context/FeedbackBodyProvider.js";
|
|
2
|
+
export * from "../../shared/context/FeedbackProvider.js";
|
|
3
|
+
export * from "../../shared/messages.js";
|
|
4
|
+
export * from "../../shared/theme.js";
|
|
5
|
+
export type * from "../../shared/types/index.js";
|
|
6
|
+
export * from "../shared/ui/primitives.js";
|
|
7
|
+
export * from "./FeedbackScreen.js";
|
|
8
|
+
export type * from "./types.js";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/native/expo/index.ts"],"names":[],"mappings":"AAAA,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,mBAAmB,6BAA6B,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,mBAAmB,YAAY,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from "../../shared/context/FeedbackBodyProvider.js";
|
|
2
|
+
export * from "../../shared/context/FeedbackProvider.js";
|
|
3
|
+
export * from "../../shared/messages.js";
|
|
4
|
+
export * from "../../shared/theme.js";
|
|
5
|
+
export * from "../shared/ui/primitives.js";
|
|
6
|
+
export * from "./FeedbackScreen.js";
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/native/expo/index.ts"],"names":[],"mappings":"AAAA,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { StackScreenProps } from "expo-router";
|
|
2
|
+
import type { SearchBarCommands } from "react-native-screens";
|
|
3
|
+
import type { FeedbackScreenRootProps } from "../../shared/types";
|
|
4
|
+
interface FeedbackScreenWithStack {
|
|
5
|
+
useStack?: true;
|
|
6
|
+
StackOptions?: StackScreenProps["options"];
|
|
7
|
+
}
|
|
8
|
+
interface FeedbackScreenWithoutStack {
|
|
9
|
+
useStack?: false;
|
|
10
|
+
StackOptions?: never;
|
|
11
|
+
}
|
|
12
|
+
export type FeedbackScreenStackProps = FeedbackScreenWithStack | FeedbackScreenWithoutStack;
|
|
13
|
+
export type ExpoFeedbackScreenProps = FeedbackScreenStackProps & FeedbackScreenRootProps;
|
|
14
|
+
export interface FeedbackStackProps {
|
|
15
|
+
searchRef: React.RefObject<SearchBarCommands | null>;
|
|
16
|
+
stackOptions?: StackScreenProps["options"];
|
|
17
|
+
children: React.ReactNode;
|
|
18
|
+
}
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/native/expo/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAElE,UAAU,uBAAuB;IAC/B,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,YAAY,CAAC,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;CAC5C;AACD,UAAU,0BAA0B;IAClC,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,YAAY,CAAC,EAAE,KAAK,CAAC;CACtB;AACD,MAAM,MAAM,wBAAwB,GAClC,uBAAuB,GAAG,0BAA0B,CAAC;AAEvD,MAAM,MAAM,uBAAuB,GAAG,wBAAwB,GAC5D,uBAAuB,CAAC;AAE1B,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IACrD,YAAY,CAAC,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC3C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/native/expo/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { FeedbackScreenRootProps } from "../../shared/types";
|
|
2
|
+
export declare function FeedbackScreen({ hooks, messages, theme, unstyled, entrySort, commentSort, enabledKinds, maxCommentDepth, debounceDuration, transformComments, renderActor, ...props }: FeedbackScreenRootProps): import("react").JSX.Element;
|
|
3
|
+
//# sourceMappingURL=FeedbackScreen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FeedbackScreen.d.ts","sourceRoot":"","sources":["../../../src/native/native/FeedbackScreen.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAGlE,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,SAAiB,EACjB,WAAmB,EACnB,YAAoB,EACpB,eAAmB,EACnB,gBAAsB,EACtB,iBAAiB,EACjB,WAAW,EACX,GAAG,KAAK,EACT,EAAE,uBAAuB,+BAiBzB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { FeedbackBodyProvider } from "../../shared/context/FeedbackBodyProvider";
|
|
3
|
+
import { FeedbackProvider } from "../../shared/context/FeedbackProvider";
|
|
4
|
+
import { kinds } from "../../shared/helpers";
|
|
5
|
+
import { FeedbackScreenContent } from "../shared/ui/BodyContent";
|
|
6
|
+
export function FeedbackScreen({ hooks, messages, theme, unstyled, entrySort = "top", commentSort = "top", enabledKinds = kinds, maxCommentDepth = 5, debounceDuration = 300, transformComments, renderActor, ...props }) {
|
|
7
|
+
return (_jsx(FeedbackProvider, { messages: messages, theme: theme, unstyled: unstyled, children: _jsx(FeedbackBodyProvider, { hooks: hooks, entrySort: entrySort, commentSort: commentSort, enabledKinds: enabledKinds, maxCommentDepth: maxCommentDepth, debounceDuration: debounceDuration, transformComments: transformComments, renderActor: renderActor, children: _jsx(FeedbackScreenContent, { ...props }) }) }));
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=FeedbackScreen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FeedbackScreen.js","sourceRoot":"","sources":["../../../src/native/native/FeedbackScreen.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,MAAM,UAAU,cAAc,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,SAAS,GAAG,KAAK,EACjB,WAAW,GAAG,KAAK,EACnB,YAAY,GAAG,KAAK,EACpB,eAAe,GAAG,CAAC,EACnB,gBAAgB,GAAG,GAAG,EACtB,iBAAiB,EACjB,WAAW,EACX,GAAG,KAAK,EACgB;IACxB,OAAO,CACL,KAAC,gBAAgB,IAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,YACpE,KAAC,oBAAoB,IACnB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,iBAAiB,EAAE,iBAAiB,EACpC,WAAW,EAAE,WAAW,YAExB,KAAC,qBAAqB,OAAK,KAAK,GAAI,GACf,GACN,CACpB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from "../../shared/context/FeedbackBodyProvider.js";
|
|
2
|
+
export * from "../../shared/context/FeedbackProvider.js";
|
|
3
|
+
export * from "../../shared/messages.js";
|
|
4
|
+
export * from "../../shared/theme.js";
|
|
5
|
+
export type * from "../../shared/types/index.js";
|
|
6
|
+
export * from "../shared/ui/primitives.js";
|
|
7
|
+
export * from "./FeedbackScreen.js";
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/native/native/index.ts"],"names":[],"mappings":"AAAA,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,mBAAmB,6BAA6B,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from "../../shared/context/FeedbackBodyProvider.js";
|
|
2
|
+
export * from "../../shared/context/FeedbackProvider.js";
|
|
3
|
+
export * from "../../shared/messages.js";
|
|
4
|
+
export * from "../../shared/theme.js";
|
|
5
|
+
export * from "../shared/ui/primitives.js";
|
|
6
|
+
export * from "./FeedbackScreen.js";
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/native/native/index.ts"],"names":[],"mappings":"AAAA,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/native/shared/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,wBAAgB,YAAY,CAAC,CAAC,EAC5B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,EACtB,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,GAClB,SAAS,CAAC,CAAC,CAAC,CAEd"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/native/shared/helpers.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,YAAY,CAC1B,OAAgB,EAChB,QAAsB,EACtB,KAAmB;IAEnB,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC7C,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { FeedbackScreenContentProps } from "../../../shared/types";
|
|
2
|
+
export declare function FeedbackScreenContent({ showHeader, hideBackButton, onEntryOpen, ...colors }: FeedbackScreenContentProps): import("react").JSX.Element;
|
|
3
|
+
//# sourceMappingURL=BodyContent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BodyContent.d.ts","sourceRoot":"","sources":["../../../../src/native/shared/ui/BodyContent.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAMxE,wBAAgB,qBAAqB,CAAC,EACpC,UAAiB,EACjB,cAAsB,EACtB,WAAW,EACX,GAAG,MAAM,EACV,EAAE,0BAA0B,+BA8B5B"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useFeedbackBody } from "../../../shared/context/FeedbackBodyProvider.js";
|
|
3
|
+
import { FeedbackScreenHeader } from "./FeedbackScreenHeader";
|
|
4
|
+
import { FeedbackScreenList } from "./FeedbackScreenList";
|
|
5
|
+
import { CreateEntryModal } from "./NewEntry";
|
|
6
|
+
import { FeedbackBoard } from "./primitives.js";
|
|
7
|
+
export function FeedbackScreenContent({ showHeader = true, hideBackButton = false, onEntryOpen, ...colors }) {
|
|
8
|
+
const { showForm, setShowForm, setSelectedEntryId } = useFeedbackBody();
|
|
9
|
+
const handleEntryOpen = (entryId) => {
|
|
10
|
+
setSelectedEntryId(entryId);
|
|
11
|
+
onEntryOpen?.(entryId);
|
|
12
|
+
};
|
|
13
|
+
return (_jsxs(_Fragment, { children: [_jsxs(FeedbackBoard.Root, { ...colors, children: [showHeader && _jsx(FeedbackScreenHeader, {}), _jsx(FeedbackScreenList, { hideBackButton: hideBackButton, onEntryOpen: handleEntryOpen })] }), showForm && (_jsx(CreateEntryModal, { onRequestClose: () => setShowForm(false), onCreated: (id) => {
|
|
14
|
+
setShowForm(false);
|
|
15
|
+
setSelectedEntryId(id);
|
|
16
|
+
} }))] }));
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=BodyContent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BodyContent.js","sourceRoot":"","sources":["../../../../src/native/shared/ui/BodyContent.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iDAAiD,CAAC;AAElF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,UAAU,qBAAqB,CAAC,EACpC,UAAU,GAAG,IAAI,EACjB,cAAc,GAAG,KAAK,EACtB,WAAW,EACX,GAAG,MAAM,EACkB;IAC3B,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,GAAG,eAAe,EAAE,CAAC;IAExE,MAAM,eAAe,GAAG,CAAC,OAAe,EAAE,EAAE;QAC1C,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC5B,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC,CAAC;IAEF,OAAO,CACL,8BACE,MAAC,aAAa,CAAC,IAAI,OAAK,MAAM,aAC3B,UAAU,IAAI,KAAC,oBAAoB,KAAG,EAEvC,KAAC,kBAAkB,IACjB,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,eAAe,GAC5B,IACiB,EAEpB,QAAQ,IAAI,CACX,KAAC,gBAAgB,IACf,cAAc,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EACxC,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE;oBAChB,WAAW,CAAC,KAAK,CAAC,CAAC;oBACnB,kBAAkB,CAAC,EAAE,CAAC,CAAC;gBACzB,CAAC,GACD,CACH,IACA,CACJ,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +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,GACR,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,+BAmBA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Pressable, Text } from "react-native";
|
|
3
|
+
import { useFeedbackUi } from "../../../shared/context/FeedbackProvider.js";
|
|
4
|
+
export function Button({ label, onPress, }) {
|
|
5
|
+
const { theme } = useFeedbackUi();
|
|
6
|
+
return (_jsx(Pressable, { onPress: onPress, style: {
|
|
7
|
+
alignSelf: "flex-start",
|
|
8
|
+
paddingVertical: 8,
|
|
9
|
+
paddingHorizontal: 11,
|
|
10
|
+
borderRadius: 8,
|
|
11
|
+
borderWidth: 1,
|
|
12
|
+
borderColor: theme.colors.border,
|
|
13
|
+
}, children: _jsx(Text, { style: { color: theme.colors.text, fontWeight: "600" }, children: label }) }));
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=Button.js.map
|
|
@@ -0,0 +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,GAIR;IACC,MAAM,EAAE,KAAK,EAAE,GAAG,aAAa,EAAE,CAAC;IAClC,OAAO,CACL,KAAC,SAAS,IACR,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE;YACL,SAAS,EAAE,YAAY;YACvB,eAAe,EAAE,CAAC;YAClB,iBAAiB,EAAE,EAAE;YACrB,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,CAAC;YACd,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;SACjC,YAED,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,YACzD,KAAK,GACD,GACG,CACb,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommentBranch.d.ts","sourceRoot":"","sources":["../../../../src/native/shared/ui/CommentBranch.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,uBAAuB,CAAC;AAK9E,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,OAAO,GACR,EAAE,gCAAgC,+BA0ElC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
import { Text, View } from "react-native";
|
|
4
|
+
import { useFeedbackBody } from "../../../shared/context/FeedbackBodyProvider.js";
|
|
5
|
+
import { useFeedbackUi } from "../../../shared/context/FeedbackProvider.js";
|
|
6
|
+
import { Button } from "./Button";
|
|
7
|
+
import { ReplyList } from "./ReplyList";
|
|
8
|
+
import { Comment, FeedbackForm } from "./primitives.js";
|
|
9
|
+
export function CommentBranch({ comment, entryId, }) {
|
|
10
|
+
const { hooks, maxCommentDepth, renderActor } = useFeedbackBody();
|
|
11
|
+
const { messages, theme } = useFeedbackUi();
|
|
12
|
+
const [expanded, setExpanded] = useState(false);
|
|
13
|
+
const [replying, setReplying] = useState(false);
|
|
14
|
+
const [replyBody, setReplyBody] = useState("");
|
|
15
|
+
const setLike = hooks.useSetCommentLike();
|
|
16
|
+
const createComment = hooks.useCreateComment();
|
|
17
|
+
return (_jsxs(Comment.Root, { comment: comment, children: [renderActor === undefined ? null : (_jsx(View, { children: renderActor(comment.actorId) })), _jsx(Comment.Body, {}), _jsxs(View, { style: {
|
|
18
|
+
flexDirection: "row",
|
|
19
|
+
flexWrap: "wrap",
|
|
20
|
+
alignItems: "center",
|
|
21
|
+
gap: 4,
|
|
22
|
+
}, children: [_jsx(Comment.Like, { onToggle: (active) => void setLike({ commentId: comment.id, desiredState: active }) }), comment.body !== null && comment.depth < maxCommentDepth ? (_jsx(Comment.Reply, { onActivate: () => setReplying((value) => !value) })) : 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, { onPress: async () => {
|
|
23
|
+
if (replyBody.trim().length === 0)
|
|
24
|
+
return;
|
|
25
|
+
await createComment({
|
|
26
|
+
entryId,
|
|
27
|
+
parentCommentId: comment.id,
|
|
28
|
+
body: replyBody,
|
|
29
|
+
});
|
|
30
|
+
setReplyBody("");
|
|
31
|
+
setReplying(false);
|
|
32
|
+
setExpanded(true);
|
|
33
|
+
}, 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] }));
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=CommentBranch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommentBranch.js","sourceRoot":"","sources":["../../../../src/native/shared/ui/CommentBranch.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +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;AAG1E,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,KAAK,EACL,MAAM,GACP,EAAE,4BAA4B,+BA2B9B"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Pressable, View } from "react-native";
|
|
3
|
+
import { FeedbackEntry } from "./primitives";
|
|
4
|
+
export function EntryCard({ entry, hooks, onOpen, }) {
|
|
5
|
+
const setUpvote = hooks.useSetEntryUpvote();
|
|
6
|
+
return (_jsxs(FeedbackEntry.Root, { entry: entry, children: [_jsx(FeedbackEntry.Upvote, { onToggle: (active) => void setUpvote({ entryId: entry.id, desiredState: active }) }), _jsxs(Pressable, { onPress: onOpen, style: { flex: 1, gap: 4 }, children: [_jsxs(View, { style: {
|
|
7
|
+
flexDirection: "row",
|
|
8
|
+
alignItems: "center",
|
|
9
|
+
justifyContent: "space-between",
|
|
10
|
+
gap: 8,
|
|
11
|
+
}, children: [_jsx(FeedbackEntry.Kind, {}), _jsx(FeedbackEntry.Status, {})] }), _jsx(FeedbackEntry.Title, {}), _jsx(FeedbackEntry.Body, { numberOfLines: 3 }), _jsx(FeedbackEntry.CommentCount, {})] })] }));
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=EntryCard.js.map
|
|
@@ -0,0 +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,OAAO,CACL,MAAC,aAAa,CAAC,IAAI,IAAC,KAAK,EAAE,KAAK,aAC9B,KAAC,aAAa,CAAC,MAAM,IACnB,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CACnB,KAAK,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,GAE7D,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntryDetail.d.ts","sourceRoot":"","sources":["../../../../src/native/shared/ui/EntryDetail.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AAK5E,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,MAAM,EACN,cAAc,GACf,EAAE,8BAA8B,2CAwFhC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo, useState } from "react";
|
|
3
|
+
import { ActivityIndicator, Text, View } from "react-native";
|
|
4
|
+
import { useFeedbackBody } from "../../../shared/context/FeedbackBodyProvider";
|
|
5
|
+
import { useFeedbackUi } from "../../../shared/context/FeedbackProvider";
|
|
6
|
+
import { Button } from "./Button";
|
|
7
|
+
import { CommentBranch } from "./CommentBranch";
|
|
8
|
+
import { FeedbackEntry, FeedbackForm } from "./primitives";
|
|
9
|
+
export function EntryDetail({ entryId, onBack, hideBackButton, }) {
|
|
10
|
+
const { hooks, commentSort, transformComments } = useFeedbackBody();
|
|
11
|
+
const { messages, theme } = useFeedbackUi();
|
|
12
|
+
const entry = hooks.useEntry(entryId);
|
|
13
|
+
const comments = hooks.useComments({ entryId, sort: commentSort });
|
|
14
|
+
const setUpvote = hooks.useSetEntryUpvote();
|
|
15
|
+
const createComment = hooks.useCreateComment();
|
|
16
|
+
const [body, setBody] = useState("");
|
|
17
|
+
const visible = useMemo(() => transformComments?.(comments.results) ?? comments.results, [comments.results, transformComments]);
|
|
18
|
+
if (entry === undefined)
|
|
19
|
+
return (_jsxs(View, { style: {
|
|
20
|
+
flex: 1,
|
|
21
|
+
gap: 8,
|
|
22
|
+
alignItems: "center",
|
|
23
|
+
justifyContent: "center",
|
|
24
|
+
}, children: [_jsx(ActivityIndicator, { size: "large" }), _jsx(Text, { style: { color: theme.colors.mutedText }, children: messages.board.loading })] }));
|
|
25
|
+
if (entry === null) {
|
|
26
|
+
if (hideBackButton)
|
|
27
|
+
return;
|
|
28
|
+
return _jsx(Button, { label: messages.entry.back, onPress: onBack });
|
|
29
|
+
}
|
|
30
|
+
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, { onToggle: (active) => void setUpvote({ entryId, desiredState: active }) }), _jsxs(FeedbackEntry.Content, { style: { gap: 5 }, children: [_jsx(FeedbackEntry.Status, {}), _jsx(FeedbackEntry.Title, {}), _jsx(FeedbackEntry.Body, {}), _jsx(FeedbackEntry.CommentCount, {})] })] }), _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, { onPress: async () => {
|
|
31
|
+
if (body.trim().length === 0)
|
|
32
|
+
return;
|
|
33
|
+
await createComment({ entryId, body });
|
|
34
|
+
setBody("");
|
|
35
|
+
}, children: messages.comments.submit })] }), _jsx(View, { style: { gap: 8 }, children: visible.map((comment) => (_jsx(CommentBranch, { comment: comment, entryId: entryId }, comment.id))) }), comments.status === "CanLoadMore" && (_jsx(Button, { label: messages.comments.loadMore, onPress: () => comments.loadMore(hooks.pageSizes.comments) }))] }));
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=EntryDetail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntryDetail.js","sourceRoot":"","sources":["../../../../src/native/shared/ui/EntryDetail.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FeedbackScreenHeader.d.ts","sourceRoot":"","sources":["../../../../src/native/shared/ui/FeedbackScreenHeader.tsx"],"names":[],"mappings":"AAKA,wBAAgB,oBAAoB,gCAkCnC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { Pressable, Text } from "react-native";
|
|
3
|
+
import { useFeedbackBody } from "../../../shared/context/FeedbackBodyProvider";
|
|
4
|
+
import { useFeedbackUi } from "../../../shared/context/FeedbackProvider";
|
|
5
|
+
import { FeedbackBoard } from "./primitives";
|
|
6
|
+
export function FeedbackScreenHeader() {
|
|
7
|
+
const { query, setShowForm, setQuery, enabledKinds } = useFeedbackBody();
|
|
8
|
+
const { messages, theme } = useFeedbackUi();
|
|
9
|
+
const pageTitle = enabledKinds.length === 1
|
|
10
|
+
? messages.kindsPlural[enabledKinds.at(0)]
|
|
11
|
+
: messages.board.title;
|
|
12
|
+
return (_jsxs(_Fragment, { children: [_jsxs(FeedbackBoard.Header, { children: [_jsx(FeedbackBoard.Title, { children: pageTitle }), _jsx(Text, { style: { color: theme.colors.mutedText }, children: messages.board.subtitle }), _jsx(Pressable, { onPress: () => setShowForm(true), style: {
|
|
13
|
+
alignSelf: "flex-start",
|
|
14
|
+
paddingVertical: 9,
|
|
15
|
+
paddingHorizontal: 12,
|
|
16
|
+
borderRadius: 9,
|
|
17
|
+
backgroundColor: theme.colors.primary,
|
|
18
|
+
}, children: _jsx(Text, { style: { color: theme.colors.text, fontWeight: "700" }, children: messages.board.createEntry }) })] }), _jsx(FeedbackBoard.Search, { value: query, onValueChange: (q) => setQuery(q) })] }));
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=FeedbackScreenHeader.js.map
|
|
@@ -0,0 +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,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,UAAU,oBAAoB;IAClC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,eAAe,EAAE,CAAC;IACzE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,aAAa,EAAE,CAAC;IAE5C,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,8BACE,MAAC,aAAa,CAAC,MAAM,eACnB,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,SAAS,IACR,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAChC,KAAK,EAAE;4BACL,SAAS,EAAE,YAAY;4BACvB,eAAe,EAAE,CAAC;4BAClB,iBAAiB,EAAE,EAAE;4BACrB,YAAY,EAAE,CAAC;4BACf,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;yBACtC,YAED,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,YACzD,QAAQ,CAAC,KAAK,CAAC,WAAW,GACtB,GACG,IACS,EACvB,KAAC,aAAa,CAAC,MAAM,IAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAI,IACxE,CACJ,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FeedbackScreenList.d.ts","sourceRoot":"","sources":["../../../../src/native/shared/ui/FeedbackScreenList.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAM9E,wBAAgB,kBAAkB,CAAC,EACjC,cAAsB,EACtB,WAAW,GACZ,EAAE,uBAAuB,+BAiDzB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useFeedbackBody } from "../../../shared/context/FeedbackBodyProvider.js";
|
|
3
|
+
import { useFeedbackUi } from "../../../shared/context/FeedbackProvider.js";
|
|
4
|
+
import { Button } from "./Button.js";
|
|
5
|
+
import { EntryCard } from "./EntryCard.js";
|
|
6
|
+
import { EntryDetail } from "./EntryDetail.js";
|
|
7
|
+
import { FeedbackBoard } from "./primitives.js";
|
|
8
|
+
export function FeedbackScreenList({ hideBackButton = false, onEntryOpen, }) {
|
|
9
|
+
const { hooks, entrySort, isSearching, enabledKinds, selectedEntryId, debouncedQuery, setSelectedEntryId, } = useFeedbackBody();
|
|
10
|
+
const { messages, theme } = useFeedbackUi();
|
|
11
|
+
const list = hooks.useEntries({ sort: entrySort, kinds: enabledKinds });
|
|
12
|
+
const search = hooks.useSearchEntries({
|
|
13
|
+
searchQuery: debouncedQuery,
|
|
14
|
+
kinds: enabledKinds,
|
|
15
|
+
});
|
|
16
|
+
const entries = isSearching ? search : list.results;
|
|
17
|
+
return (_jsxs(_Fragment, { children: [_jsx(FeedbackBoard.List, { style: { paddingHorizontal: theme.spacing }, children: selectedEntryId ? (_jsx(EntryDetail, { entryId: selectedEntryId, hideBackButton: hideBackButton, onBack: () => setSelectedEntryId(null) })) : ((entries ?? []).map((entry) => (_jsx(EntryCard, { entry: entry, hooks: hooks, onOpen: () => onEntryOpen(entry.id) }, entry.id)))) }), !isSearching && list.status === "CanLoadMore" && (_jsx(Button, { label: messages.board.loadMore, onPress: () => list.loadMore(hooks.pageSizes.entries) }))] }));
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=FeedbackScreenList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FeedbackScreenList.js","sourceRoot":"","sources":["../../../../src/native/shared/ui/FeedbackScreenList.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iDAAiD,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAE5E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,UAAU,kBAAkB,CAAC,EACjC,cAAc,GAAG,KAAK,EACtB,WAAW,GACa;IACxB,MAAM,EACJ,KAAK,EACL,SAAS,EACT,WAAW,EACX,YAAY,EACZ,eAAe,EACf,cAAc,EACd,kBAAkB,GACnB,GAAG,eAAe,EAAE,CAAC;IACtB,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,aAAa,EAAE,CAAC;IAE5C,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,KAAK,CAAC,gBAAgB,CAAC;QACpC,WAAW,EAAE,cAAc;QAC3B,KAAK,EAAE,YAAY;KACpB,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;IAEpD,OAAO,CACL,8BACE,KAAC,aAAa,CAAC,IAAI,IAAC,KAAK,EAAE,EAAE,iBAAiB,EAAE,KAAK,CAAC,OAAO,EAAE,YAC5D,eAAe,CAAC,CAAC,CAAC,CACjB,KAAC,WAAW,IACV,OAAO,EAAE,eAAe,EACxB,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,GACtC,CACH,CAAC,CAAC,CAAC,CACF,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC7B,KAAC,SAAS,IAER,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,IAH9B,KAAK,CAAC,EAAE,CAIb,CACH,CAAC,CACH,GACkB,EAEpB,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,IAAI,CAChD,KAAC,MAAM,IACL,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAC9B,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,GACrD,CACH,IACA,CACJ,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { FeedbackScreenEntryModalProps } from "../../../shared/types";
|
|
2
|
+
export declare function CreateEntryModal({ onRequestClose, onCreated, }: FeedbackScreenEntryModalProps & {
|
|
3
|
+
onRequestClose: () => void;
|
|
4
|
+
}): import("react").JSX.Element;
|
|
5
|
+
//# sourceMappingURL=NewEntry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NewEntry.d.ts","sourceRoot":"","sources":["../../../../src/native/shared/ui/NewEntry.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAK3E,wBAAgB,gBAAgB,CAAC,EAC/B,cAAc,EACd,SAAS,GACV,EAAE,6BAA6B,GAAG;IACjC,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B,+BA6HA"}
|