diff --git a/apps/mobile/app/components/sheets/github/issue.js b/apps/mobile/app/components/sheets/github/issue.js index 7a5469098..2479e0710 100644 --- a/apps/mobile/app/components/sheets/github/issue.js +++ b/apps/mobile/app/components/sheets/github/issue.js @@ -19,7 +19,6 @@ along with this program. If not, see . import { Debug } from "@notesnook/core/dist/api/debug"; import { useThemeColors } from "@notesnook/theme"; -import Clipboard from "@react-native-clipboard/clipboard"; import React, { useRef, useState } from "react"; import { Linking, Platform, Text, TextInput, View } from "react-native"; import { getVersion } from "react-native-device-info"; @@ -30,23 +29,22 @@ import { useUserStore } from "../../../stores/use-user-store"; import { eCloseSheet } from "../../../utils/events"; import { openLinkInBrowser } from "../../../utils/functions"; import { SIZE } from "../../../utils/size"; -import { sleep } from "../../../utils/time"; import DialogHeader from "../../dialog/dialog-header"; -import { presentDialog } from "../../dialog/functions"; import { Button } from "../../ui/button"; import Seperator from "../../ui/seperator"; +import Heading from "../../ui/typography/heading"; import Paragraph from "../../ui/typography/paragraph"; export const Issue = ({ defaultTitle, defaultBody, issueTitle }) => { const { colors } = useThemeColors(); - - const body = useStoredRef("issueBody", defaultBody); + const body = useStoredRef("issueBody"); const title = useStoredRef("issueTitle", defaultTitle); - + const [done, setDone] = useState(false); const user = useUserStore((state) => state.user); const [loading, setLoading] = useState(false); const bodyRef = useRef(); const initialLayout = useRef(false); + const issueUrl = useRef(); const onPress = async () => { if (loading) return; @@ -56,10 +54,11 @@ export const Issue = ({ defaultTitle, defaultBody, issueTitle }) => { try { setLoading(true); - let issue_url = await Debug.report({ + issueUrl.current = await Debug.report({ title: title.current, body: body.current + + `\n${defaultBody}` + `\n_______________ **Device information:** App version: ${getVersion()} @@ -75,38 +74,7 @@ Logged in: ${user ? "yes" : "no"}`, eSendEvent(eCloseSheet); body.reset(); title.reset(); - await sleep(300); - presentDialog({ - title: "Issue reported", - paragraph: ( - - You can track your issue at{" "} - { - Linking.openURL(issue_url); - }} - > - {issue_url}. - {" "} - Please note that we will respond to your issue on the given link. We - recommend that you save it. - - ), - positiveText: "Copy link", - positivePress: () => { - Clipboard.setString(issue_url); - ToastManager.show({ - heading: "Issue url copied!", - type: "success", - context: "global" - }); - }, - negativeText: "Close" - }); + setDone(true); } catch (e) { setLoading(false); ToastManager.show({ @@ -124,125 +92,179 @@ Logged in: ${user ? "yes" : "no"}`, width: "100%" }} > - + {done ? ( + <> + + Issue submitted + + You can track your issue at{" "} + { + Linking.openURL(issueUrl.current); + }} + > + {issueUrl.current} + + . Please note that we will respond to your issue on the given + link. We recommend that you save it. + - - - (title.current = v)} - defaultValue={title.current} - style={{ - borderWidth: 1, - borderColor: colors.primary.border, - borderRadius: 5, - padding: 12, - fontFamily: "OpenSans-Regular", - marginBottom: 10, - fontSize: SIZE.md, - color: colors.primary.heading - }} - placeholderTextColor={colors.primary.placeholder} - /> - - (body.current = v)} - onLayout={() => { - if (initialLayout.current) return; - initialLayout.current = true; - if (body.current) { - bodyRef.current?.setNativeProps({ - text: body.current, - selection: { - start: 0, - end: 0 - } - }); - } - }} - style={{ - borderWidth: 1, - borderColor: colors.primary.border, - borderRadius: 5, - padding: 12, - fontFamily: "OpenSans-Regular", - maxHeight: 200, - fontSize: SIZE.sm, - marginBottom: 2.5, - color: colors.primary.paragraph - }} - placeholderTextColor={colors.primary.placeholder} - /> - {`App version: ${getVersion()} Platform: ${Platform.OS} Model: ${ - Platform.constants.Brand - }-${Platform.constants.Model}-${Platform.constants.Version}`} - - -