mobile: fix input hides behind keyboard on focus (#2767)

This commit is contained in:
Ammar Ahmed
2023-06-20 11:33:48 +05:00
committed by GitHub
parent 6c9c99681e
commit 04d122c47c
9 changed files with 243 additions and 280 deletions

View File

@@ -17,15 +17,6 @@ jobs:
with: with:
persist-credentials: false persist-credentials: false
- name: Setup npmrc
run: |
echo "registry=https://npm.pkg.github.com" > .npmrc
echo "@streetwriters:registry=https://npm.pkg.github.com" >> .npmrc
echo "//npm.pkg.github.com/:_authToken=${{secrets.PACKAGES_TOKEN}}" >> .npmrc
- name: Setup yarnrc
run: echo "\"@streetwriters:registry\" \"https://npm.pkg.github.com\"" > .yarnrc
- uses: actions/setup-node@master - uses: actions/setup-node@master
with: with:
node-version: "16" node-version: "16"

View File

@@ -17,15 +17,6 @@ jobs:
with: with:
persist-credentials: false persist-credentials: false
- name: Setup npmrc
run: |
echo "registry=https://npm.pkg.github.com" > .npmrc
echo "@streetwriters:registry=https://npm.pkg.github.com" >> .npmrc
echo "//npm.pkg.github.com/:_authToken=${{secrets.PACKAGES_TOKEN}}" >> .npmrc
- name: Setup yarnrc
run: echo "\"@streetwriters:registry\" \"https://npm.pkg.github.com\"" > .yarnrc
- uses: actions/setup-node@master - uses: actions/setup-node@master
with: with:
node-version: "16" node-version: "16"

View File

@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
import React, { useEffect, useRef, useState } from "react"; import React, { useEffect, useRef, useState } from "react";
import { View } from "react-native"; import { Platform, View } from "react-native";
import useGlobalSafeAreaInsets from "../../hooks/use-global-safe-area-insets"; import useGlobalSafeAreaInsets from "../../hooks/use-global-safe-area-insets";
import { import {
eSubscribeEvent, eSubscribeEvent,
@@ -34,6 +34,7 @@ import { IconButton } from "../ui/icon-button";
import { hideAuth, initialAuthMode } from "./common"; import { hideAuth, initialAuthMode } from "./common";
import { Login } from "./login"; import { Login } from "./login";
import { Signup } from "./signup"; import { Signup } from "./signup";
import { KeyboardAwareScrollView } from "react-native-keyboard-aware-scroll-view";
export const AuthMode = { export const AuthMode = {
login: 0, login: 0,
@@ -75,7 +76,7 @@ const AuthModal = () => {
return !visible ? null : ( return !visible ? null : (
<BaseDialog <BaseDialog
overlayOpacity={0} overlayOpacity={0}
statusBarTranslucent={true} statusBarTranslucent={false}
onRequestClose={currentAuthMode !== AuthMode.welcomeSignup && close} onRequestClose={currentAuthMode !== AuthMode.welcomeSignup && close}
visible={true} visible={true}
onClose={close} onClose={close}
@@ -84,66 +85,83 @@ const AuthModal = () => {
background={colors.bg} background={colors.bg}
transparent={false} transparent={false}
animated={false} animated={false}
avoidKeyboardResize
> >
{currentAuthMode !== AuthMode.login ? ( <KeyboardAwareScrollView
<Signup style={{
changeMode={(mode) => setCurrentAuthMode(mode)} width: "100%"
trial={AuthMode.trialSignup === currentAuthMode} }}
welcome={initialAuthMode.current === AuthMode.welcomeSignup} contentContainerStyle={{
/> height: Platform.OS === "android" ? "100%" : "100%"
) : ( }}
<Login bounces={false}
welcome={initialAuthMode.current === AuthMode.welcomeSignup} >
changeMode={(mode) => setCurrentAuthMode(mode)} {currentAuthMode !== AuthMode.login ? (
/> <Signup
)} changeMode={(mode) => setCurrentAuthMode(mode)}
trial={AuthMode.trialSignup === currentAuthMode}
welcome={initialAuthMode.current === AuthMode.welcomeSignup}
/>
) : (
<Login
welcome={initialAuthMode.current === AuthMode.welcomeSignup}
changeMode={(mode) => setCurrentAuthMode(mode)}
/>
)}
</KeyboardAwareScrollView>
<View <View
style={{ style={{
position: "absolute", position: "absolute",
top: insets.top, paddingTop: Platform.OS === "android" ? 0 : insets.top,
top: 0,
zIndex: 999, zIndex: 999,
flexDirection: "row", backgroundColor: colors.nav,
alignItems: "center", width: "100%"
paddingHorizontal: 12,
width: "100%",
height: 50,
justifyContent:
initialAuthMode.current !== AuthMode.welcomeSignup
? "space-between"
: "flex-end"
}} }}
> >
{initialAuthMode.current === AuthMode.welcomeSignup ? null : ( <View
<IconButton style={{
name="arrow-left" flexDirection: "row",
onPress={() => { alignItems: "center",
hideAuth(); paddingHorizontal: 12,
}} width: "100%",
color={colors.pri} height: 50,
/> justifyContent:
)} initialAuthMode.current !== AuthMode.welcomeSignup
? "space-between"
: "flex-end"
}}
>
{initialAuthMode.current === AuthMode.welcomeSignup ? null : (
<IconButton
name="arrow-left"
onPress={() => {
hideAuth();
}}
color={colors.pri}
/>
)}
{initialAuthMode.current !== AuthMode.welcomeSignup ? null : ( {initialAuthMode.current !== AuthMode.welcomeSignup ? null : (
<Button <Button
title="Skip" title="Skip"
onPress={() => { onPress={() => {
hideAuth(); hideAuth();
}} }}
iconSize={16} iconSize={16}
type="gray" type="gray"
iconPosition="right" iconPosition="right"
icon="chevron-right" icon="chevron-right"
height={25} height={25}
iconStyle={{ iconStyle={{
marginTop: 2 marginTop: 2
}} }}
style={{ style={{
paddingHorizontal: 6 paddingHorizontal: 6
}} }}
/> />
)} )}
</View>
</View> </View>
<Toast context="local" /> <Toast context="local" />

View File

@@ -102,8 +102,7 @@ export const Signup = ({ changeMode, trial }) => {
zIndex: 10, zIndex: 10,
width: "100%", width: "100%",
alignSelf: "center", alignSelf: "center",
height: "100%", height: "100%"
minHeight: "100%"
}} }}
> >
<View <View

View File

@@ -21,7 +21,6 @@
"react-native-qrcode-svg": "^6.0.6", "react-native-qrcode-svg": "^6.0.6",
"react-native-reanimated-material-menu": "github:ammarahm-ed/react-native-reanimated-material-menu", "react-native-reanimated-material-menu": "github:ammarahm-ed/react-native-reanimated-material-menu",
"react-native-reanimated-progress-bar": "1.0.1", "react-native-reanimated-progress-bar": "1.0.1",
"@streetwriters/showdown": "3.0.1-alpha",
"toggle-switch-react-native": "3.2.0", "toggle-switch-react-native": "3.2.0",
"url": "^0.11.0", "url": "^0.11.0",
"validator": "^13.5.2", "validator": "^13.5.2",
@@ -29,7 +28,9 @@
"fflate": "^0.7.3", "fflate": "^0.7.3",
"timeago.js": "4.0.2", "timeago.js": "4.0.2",
"react-native-blob-util": "0.17.3", "react-native-blob-util": "0.17.3",
"react-native-swiper-flatlist": "3.2.2" "react-native-swiper-flatlist": "3.2.2",
"@streetwriters/showdown": "^3.0.1-alpha.2",
"react-native-keyboard-aware-scroll-view": "^0.9.5"
}, },
"sideEffects": false "sideEffects": false
} }

View File

@@ -36,6 +36,7 @@ import { useThemeStore } from "../../stores/use-theme-store";
import { editorRef } from "../../utils/global-refs"; import { editorRef } from "../../utils/global-refs";
import { ProgressBar } from "./progress"; import { ProgressBar } from "./progress";
import { editorController, textInput } from "./tiptap/utils"; import { editorController, textInput } from "./tiptap/utils";
export const EditorWrapper = ({ width }) => { export const EditorWrapper = ({ width }) => {
const colors = useThemeStore((state) => state.colors); const colors = useThemeStore((state) => state.colors);
const deviceMode = useSettingStore((state) => state.deviceMode); const deviceMode = useSettingStore((state) => state.deviceMode);

View File

@@ -20,7 +20,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
import { NativeStackScreenProps } from "@react-navigation/native-stack"; import { NativeStackScreenProps } from "@react-navigation/native-stack";
import React, { useEffect } from "react"; import React, { useEffect } from "react";
import { View } from "react-native"; import { View } from "react-native";
import Animated, { FadeInDown, FadeOutDown } from "react-native-reanimated"; import { KeyboardAwareFlatList } from "react-native-keyboard-aware-scroll-view";
import Animated, { FadeInDown } from "react-native-reanimated";
import DelayLayout from "../../components/delay-layout"; import DelayLayout from "../../components/delay-layout";
import { useNavigationFocus } from "../../hooks/use-navigation-focus"; import { useNavigationFocus } from "../../hooks/use-navigation-focus";
import useNavigationStore from "../../stores/use-navigation-store"; import useNavigationStore from "../../stores/use-navigation-store";
@@ -28,7 +29,11 @@ import { tabBarRef } from "../../utils/global-refs";
import { components } from "./components"; import { components } from "./components";
import { SectionItem } from "./section-item"; import { SectionItem } from "./section-item";
import { RouteParams, SettingSection } from "./types"; import { RouteParams, SettingSection } from "./types";
const keyExtractor = (item: SettingSection) => item.id; const keyExtractor = (item: SettingSection) => item.id;
const AnimatedKeyboardAvoidingFlatList = Animated.createAnimatedComponent(
KeyboardAwareFlatList
);
const Group = ({ const Group = ({
navigation, navigation,
@@ -57,16 +62,15 @@ const Group = ({
); );
return ( return (
<DelayLayout type="settings" delay={300}> <DelayLayout type="settings" delay={1}>
<View <View
style={{ style={{
flex: 1 flex: 1
}} }}
> >
{route.params.sections ? ( {route.params.sections ? (
<Animated.FlatList <AnimatedKeyboardAvoidingFlatList
entering={FadeInDown} entering={FadeInDown}
exiting={FadeOutDown}
data={route.params.sections} data={route.params.sections}
keyExtractor={keyExtractor} keyExtractor={keyExtractor}
renderItem={renderItem} renderItem={renderItem}

View File

@@ -1,6 +1,5 @@
PODS: PODS:
- Base64 (1.1.2) - Base64 (1.1.2)
- BEMCheckBox (1.4.1)
- boost (1.76.0) - boost (1.76.0)
- callstack-repack (3.2.0): - callstack-repack (3.2.0):
- JWTDecode (~> 3.0) - JWTDecode (~> 3.0)
@@ -240,9 +239,9 @@ PODS:
- React - React
- react-native-blob-util (0.17.3): - react-native-blob-util (0.17.3):
- React-Core - React-Core
- react-native-config (1.5.1): - react-native-config (1.4.11):
- react-native-config/App (= 1.5.1) - react-native-config/App (= 1.4.11)
- react-native-config/App (1.5.1): - react-native-config/App (1.4.11):
- React-Core - React-Core
- react-native-date-picker (4.2.6): - react-native-date-picker (4.2.6):
- React-Core - React-Core
@@ -250,7 +249,7 @@ PODS:
- React-Core - React-Core
- react-native-fingerprint-scanner (5.0.0): - react-native-fingerprint-scanner (5.0.0):
- React-Core - React-Core
- react-native-get-random-values (1.9.0): - react-native-get-random-values (1.8.0):
- React-Core - React-Core
- react-native-gzip (1.0.0): - react-native-gzip (1.0.0):
- Base64 - Base64
@@ -269,7 +268,7 @@ PODS:
- react-native-mmkv-storage (0.8.0): - react-native-mmkv-storage (0.8.0):
- MMKV (= 1.2.13) - MMKV (= 1.2.13)
- React-Core - React-Core
- react-native-netinfo (9.3.10): - react-native-netinfo (9.3.7):
- React-Core - React-Core
- react-native-notification-sounds (0.5.5): - react-native-notification-sounds (0.5.5):
- React - React
@@ -277,7 +276,7 @@ PODS:
- React - React
- react-native-pdf (6.6.2): - react-native-pdf (6.6.2):
- React-Core - React-Core
- react-native-safe-area-context (4.5.3): - react-native-safe-area-context (4.4.1):
- RCT-Folly - RCT-Folly
- RCTRequired - RCTRequired
- RCTTypeSafety - RCTTypeSafety
@@ -287,7 +286,7 @@ PODS:
- React - React
- react-native-sodium (1.4.1): - react-native-sodium (1.4.1):
- React - React
- react-native-webview (11.26.1): - react-native-webview (11.23.1):
- React-Core - React-Core
- React-perflogger (0.69.7) - React-perflogger (0.69.7)
- React-RCTActionSheet (0.69.7): - React-RCTActionSheet (0.69.7):
@@ -357,12 +356,11 @@ PODS:
- React-perflogger (= 0.69.7) - React-perflogger (= 0.69.7)
- RNBootSplash (4.1.4): - RNBootSplash (4.1.4):
- React-Core - React-Core
- RNCCheckbox (0.5.15): - RNCCheckbox (0.5.12):
- BEMCheckBox (~> 1.4)
- React-Core - React-Core
- RNCClipboard (1.11.2): - RNCClipboard (1.11.1):
- React-Core - React-Core
- RNCMaskedView (0.2.9): - RNCMaskedView (0.2.8):
- React-Core - React-Core
- RNDateTimePicker (6.6.0): - RNDateTimePicker (6.6.0):
- React-Core - React-Core
@@ -374,7 +372,7 @@ PODS:
- React-Core - React-Core
- RNFlashList (1.4.0): - RNFlashList (1.4.0):
- React-Core - React-Core
- RNGestureHandler (2.10.1): - RNGestureHandler (2.7.1):
- React-Core - React-Core
- RNIap (7.5.6): - RNIap (7.5.6):
- React-Core - React-Core
@@ -414,14 +412,14 @@ PODS:
- React-RCTText - React-RCTText
- ReactCommon/turbomodule/core - ReactCommon/turbomodule/core
- Yoga - Yoga
- RNScreens (3.20.0): - RNScreens (3.18.2):
- React-Core - React-Core
- React-RCTImage - React-RCTImage
- RNSecureRandom (1.0.1): - RNSecureRandom (1.0.1):
- React - React
- RNShare (7.9.1): - RNShare (7.9.1):
- React-Core - React-Core
- RNSVG (12.5.1): - RNSVG (12.4.4):
- React-Core - React-Core
- RNTooltips (1.0.3): - RNTooltips (1.0.3):
- pop (~> 1.0) - pop (~> 1.0)
@@ -532,7 +530,6 @@ DEPENDENCIES:
SPEC REPOS: SPEC REPOS:
trunk: trunk:
- Base64 - Base64
- BEMCheckBox
- fmt - fmt
- GZIP - GZIP
- JWTDecode - JWTDecode
@@ -711,7 +708,6 @@ CHECKOUT OPTIONS:
SPEC CHECKSUMS: SPEC CHECKSUMS:
Base64: cecfb41a004124895a7bcee567a89bae5a89d49b Base64: cecfb41a004124895a7bcee567a89bae5a89d49b
BEMCheckBox: 5ba6e37ade3d3657b36caecc35c8b75c6c2b1a4e
boost: a7c83b31436843459a1961bfd74b96033dc77234 boost: a7c83b31436843459a1961bfd74b96033dc77234
callstack-repack: 3e48a96824e0e0411ae1f48749a2ab103aa62a3a callstack-repack: 3e48a96824e0e0411ae1f48749a2ab103aa62a3a
DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54 DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54
@@ -742,11 +738,11 @@ SPEC CHECKSUMS:
react-native-background-actions: 2c251c986f23347f9c1722f05fd296938f60edb1 react-native-background-actions: 2c251c986f23347f9c1722f05fd296938f60edb1
react-native-begin-background-task: 3b889e07458afc5822a7277cf9cbc7cd077e39ee react-native-begin-background-task: 3b889e07458afc5822a7277cf9cbc7cd077e39ee
react-native-blob-util: 99f4d79189252f597fe0d810c57a3733b1b1dea6 react-native-blob-util: 99f4d79189252f597fe0d810c57a3733b1b1dea6
react-native-config: 86038147314e2e6d10ea9972022aa171e6b1d4d8 react-native-config: bcafda5b4c51491ee1b0e1d0c4e3905bc7b56c1b
react-native-date-picker: 93e43b3084cea595b4d68b1405d6d99849663bd6 react-native-date-picker: 93e43b3084cea595b4d68b1405d6d99849663bd6
react-native-document-picker: ec07866a30707f23660c0f3ae591d669d3e89096 react-native-document-picker: ec07866a30707f23660c0f3ae591d669d3e89096
react-native-fingerprint-scanner: be63e626b31fb951780a5fac5328b065a61a3d6e react-native-fingerprint-scanner: be63e626b31fb951780a5fac5328b065a61a3d6e
react-native-get-random-values: dee677497c6a740b71e5612e8dbd83e7539ed5bb react-native-get-random-values: a6ea6a8a65dc93e96e24a11105b1a9c8cfe1d72a
react-native-gzip: 02f9968afa759e189f0414d41f8f4a951a86b4f1 react-native-gzip: 02f9968afa759e189f0414d41f8f4a951a86b4f1
react-native-html-to-pdf-lite: 21bfb169bf4cbcd7bec9f736975ee1b3f5292d4a react-native-html-to-pdf-lite: 21bfb169bf4cbcd7bec9f736975ee1b3f5292d4a
react-native-image-picker: 9c8a2687b69300ad9e95cec5d38f35ab9d32467d react-native-image-picker: 9c8a2687b69300ad9e95cec5d38f35ab9d32467d
@@ -754,14 +750,14 @@ SPEC CHECKSUMS:
react-native-in-app-review: db8bb167a5f238e7ceca5c242d6b36ce8c4404a4 react-native-in-app-review: db8bb167a5f238e7ceca5c242d6b36ce8c4404a4
react-native-keep-awake: acbee258db16483744910f0da3ace39eb9ab47fd react-native-keep-awake: acbee258db16483744910f0da3ace39eb9ab47fd
react-native-mmkv-storage: 8ba3c0216a6df283ece11205b442a3e435aec4e5 react-native-mmkv-storage: 8ba3c0216a6df283ece11205b442a3e435aec4e5
react-native-netinfo: ccbe1085dffd16592791d550189772e13bf479e2 react-native-netinfo: 2517ad504b3d303e90d7a431b0fcaef76d207983
react-native-notification-sounds: da78c828fe1bcbb92d8b505d5261890ed315ff39 react-native-notification-sounds: da78c828fe1bcbb92d8b505d5261890ed315ff39
react-native-orientation: f1caf84d65f1a4fd4511a18f2b924e634ad7a628 react-native-orientation: f1caf84d65f1a4fd4511a18f2b924e634ad7a628
react-native-pdf: 33c622cbdf776a649929e8b9d1ce2d313347c4fa react-native-pdf: 33c622cbdf776a649929e8b9d1ce2d313347c4fa
react-native-safe-area-context: b8979f5eda6ed5903d4dbc885be3846ea3daa753 react-native-safe-area-context: 99b24a0c5acd0d5dcac2b1a7f18c49ea317be99a
react-native-share-extension: 8fa247810cc533c9d3bab6913f62ce7aec9bcf4a react-native-share-extension: 8fa247810cc533c9d3bab6913f62ce7aec9bcf4a
react-native-sodium: f4e3986ddcb73482f8679e534b448a0675d0cf13 react-native-sodium: f4e3986ddcb73482f8679e534b448a0675d0cf13
react-native-webview: 9f111dfbcfc826084d6c507f569e5e03342ee1c1 react-native-webview: d33e2db8925d090871ffeb232dfa50cb3a727581
React-perflogger: 8e832d4e21fdfa613033c76d58d7e617341e804b React-perflogger: 8e832d4e21fdfa613033c76d58d7e617341e804b
React-RCTActionSheet: 9ca778182a9523991bff6381045885b6e808bb73 React-RCTActionSheet: 9ca778182a9523991bff6381045885b6e808bb73
React-RCTAnimation: 9ced26ad20b96e532ac791a8ab92a7b1ce2266b8 React-RCTAnimation: 9ced26ad20b96e532ac791a8ab92a7b1ce2266b8
@@ -775,24 +771,24 @@ SPEC CHECKSUMS:
React-runtimeexecutor: 65cd2782a57e1d59a68aa5d504edf94278578e41 React-runtimeexecutor: 65cd2782a57e1d59a68aa5d504edf94278578e41
ReactCommon: 1e783348b9aa73ae68236271df972ba898560a95 ReactCommon: 1e783348b9aa73ae68236271df972ba898560a95
RNBootSplash: de2c568373a9c79a66e9918b8929eb6c9a35246f RNBootSplash: de2c568373a9c79a66e9918b8929eb6c9a35246f
RNCCheckbox: 43bcc6493611468af0e19f19f029dab3da8561c4 RNCCheckbox: ed1b4ca295475b41e7251ebae046360a703b6eb5
RNCClipboard: 3f0451a8100393908bea5c5c5b16f96d45f30bfc RNCClipboard: 2834e1c4af68697089cdd455ee4a4cdd198fa7dd
RNCMaskedView: 949696f25ec596bfc697fc88e6f95cf0c79669b6 RNCMaskedView: bc0170f389056201c82a55e242e5d90070e18e5a
RNDateTimePicker: 818672afa85519722533d017b832ed09539d9ddb RNDateTimePicker: 818672afa85519722533d017b832ed09539d9ddb
RNDeviceInfo: aad3c663b25752a52bf8fce93f2354001dd185aa RNDeviceInfo: aad3c663b25752a52bf8fce93f2354001dd185aa
RNExitApp: c4e052df2568b43bec8a37c7cd61194d4cfee2c3 RNExitApp: c4e052df2568b43bec8a37c7cd61194d4cfee2c3
RNFileViewer: ce7ca3ac370e18554d35d6355cffd7c30437c592 RNFileViewer: ce7ca3ac370e18554d35d6355cffd7c30437c592
RNFlashList: 399bf6a0db68f594ad2c86aaff3ea39564f39f8a RNFlashList: 399bf6a0db68f594ad2c86aaff3ea39564f39f8a
RNGestureHandler: 42ec7c28dd02d540ed6c9159c57a98ff016492dc RNGestureHandler: b7a872907ee289ada902127f2554fa1d2c076122
RNIap: d248609d1b8937e63bd904e865c318e9b1457eff RNIap: d248609d1b8937e63bd904e865c318e9b1457eff
RNKeychain: 840f8e6f13be0576202aefcdffd26a4f54bfe7b5 RNKeychain: 840f8e6f13be0576202aefcdffd26a4f54bfe7b5
RNNotifee: 2ae3c18196e6f307fa62ae5c8e5305dea03ff147 RNNotifee: 2ae3c18196e6f307fa62ae5c8e5305dea03ff147
RNPrivacySnapshot: 8eaf571478a353f2e5184f5c803164f22428b023 RNPrivacySnapshot: 8eaf571478a353f2e5184f5c803164f22428b023
RNReanimated: f1b109fb8341505ace9d7d2eedd150da1686716b RNReanimated: f1b109fb8341505ace9d7d2eedd150da1686716b
RNScreens: 218801c16a2782546d30bd2026bb625c0302d70f RNScreens: 34cc502acf1b916c582c60003dc3089fa01dc66d
RNSecureRandom: 07efbdf2cd99efe13497433668e54acd7df49fef RNSecureRandom: 07efbdf2cd99efe13497433668e54acd7df49fef
RNShare: a5dc3b9c53ddc73e155b8cd9a94c70c91913c43c RNShare: a5dc3b9c53ddc73e155b8cd9a94c70c91913c43c
RNSVG: d7d7bc8229af3842c9cfc3a723c815a52cdd1105 RNSVG: ecd661f380a07ba690c9c5929c475a44f432d674
RNTooltips: 5424d4bf0b3d441104127943b1115cc7f0616b1f RNTooltips: 5424d4bf0b3d441104127943b1115cc7f0616b1f
RNZipArchive: 68a0c6db4b1c103f846f1559622050df254a3ade RNZipArchive: 68a0c6db4b1c103f846f1559622050df254a3ade
SexyTooltip: 5c9b4dec52bfb317938cb0488efd9da3717bb6fd SexyTooltip: 5c9b4dec52bfb317938cb0488efd9da3717bb6fd

View File

@@ -13,8 +13,11 @@
"app/" "app/"
], ],
"dependencies": { "dependencies": {
"@streetwriters/showdown": "^3.0.1-alpha.2",
"react": "18.0.0", "react": "18.0.0",
"react-native": "0.69.7", "react-native": "0.69.7",
"react-native-bootsplash": "4.1.4",
"react-native-keyboard-aware-scroll-view": "^0.9.5",
"react-native-swiper-flatlist": "3.2.2" "react-native-swiper-flatlist": "3.2.2"
}, },
"devDependencies": { "devDependencies": {
@@ -196,7 +199,6 @@
"dependencies": { "dependencies": {
"@flyerhq/react-native-link-preview": "^1.6.0", "@flyerhq/react-native-link-preview": "^1.6.0",
"@mdi/js": "^6.7.96", "@mdi/js": "^6.7.96",
"@streetwriters/showdown": "3.0.1-alpha",
"absolutify": "^0.1.0", "absolutify": "^0.1.0",
"buffer": "^6.0.3", "buffer": "^6.0.3",
"dayjs": "^1.10.4", "dayjs": "^1.10.4",
@@ -327,115 +329,6 @@
"webpack": "^5.74.0" "webpack": "^5.74.0"
} }
}, },
"native/node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dependencies": {
"color-convert": "^2.0.1"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
"native/node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
"native/node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dependencies": {
"color-name": "~1.1.4"
},
"engines": {
"node": ">=7.0.0"
}
},
"native/node_modules/color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"native/node_modules/fs-extra": {
"version": "10.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
"integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
"universalify": "^2.0.0"
},
"engines": {
"node": ">=12"
}
},
"native/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"engines": {
"node": ">=8"
}
},
"native/node_modules/jsonfile": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"dependencies": {
"universalify": "^2.0.0"
},
"optionalDependencies": {
"graceful-fs": "^4.1.6"
}
},
"native/node_modules/react-native-bootsplash": {
"version": "4.1.4",
"resolved": "https://registry.npmjs.org/react-native-bootsplash/-/react-native-bootsplash-4.1.4.tgz",
"integrity": "sha512-/A6FHh/eCoC8a/edBO81C6yy8beBaz97eT7NbYaFf/VuapeUVDUoeVwM6PSHb0Tb8n5SyG3fQXIVkq5pOI1MKQ==",
"dependencies": {
"chalk": "^4.1.2",
"fs-extra": "^10.0.1",
"jimp": "^0.16.1"
},
"peerDependencies": {
"react-native": ">=0.65.0"
}
},
"native/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dependencies": {
"has-flag": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"native/node_modules/universalify": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
"integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
"engines": {
"node": ">= 10.0.0"
}
},
"node_modules/@ammarahmed/notifee-react-native": { "node_modules/@ammarahmed/notifee-react-native": {
"version": "7.4.4", "version": "7.4.4",
"license": "Apache-2.0", "license": "Apache-2.0",
@@ -4192,35 +4085,6 @@
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/@callstack/repack/node_modules/fs-extra": {
"version": "10.1.0",
"license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
"universalify": "^2.0.0"
},
"engines": {
"node": ">=12"
}
},
"node_modules/@callstack/repack/node_modules/jsonfile": {
"version": "6.1.0",
"license": "MIT",
"dependencies": {
"universalify": "^2.0.0"
},
"optionalDependencies": {
"graceful-fs": "^4.1.6"
}
},
"node_modules/@callstack/repack/node_modules/universalify": {
"version": "2.0.0",
"license": "MIT",
"engines": {
"node": ">= 10.0.0"
}
},
"node_modules/@cnakazawa/watch": { "node_modules/@cnakazawa/watch": {
"version": "1.0.4", "version": "1.0.4",
"resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz",
@@ -7392,8 +7256,9 @@
} }
}, },
"node_modules/@streetwriters/showdown": { "node_modules/@streetwriters/showdown": {
"version": "3.0.1-alpha", "version": "3.0.1-alpha.2",
"license": "MIT", "resolved": "https://registry.npmjs.org/@streetwriters/showdown/-/showdown-3.0.1-alpha.2.tgz",
"integrity": "sha512-GkIDQlcvJVVMgp1J5H5upiRr2hZQJAJK6gnDzOjvJAflKO4gV96xCq4RFakwahLLhL7uQ8Yx10qtmrtBuJMsEw==",
"bin": { "bin": {
"showdown": "bin/showdown.js" "showdown": "bin/showdown.js"
}, },
@@ -12037,6 +11902,38 @@
"node": ">= 0.6" "node": ">= 0.6"
} }
}, },
"node_modules/fs-extra": {
"version": "10.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
"integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
"universalify": "^2.0.0"
},
"engines": {
"node": ">=12"
}
},
"node_modules/fs-extra/node_modules/jsonfile": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"dependencies": {
"universalify": "^2.0.0"
},
"optionalDependencies": {
"graceful-fs": "^4.1.6"
}
},
"node_modules/fs-extra/node_modules/universalify": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
"integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
"engines": {
"node": ">= 10.0.0"
}
},
"node_modules/fs-monkey": { "node_modules/fs-monkey": {
"version": "1.0.3", "version": "1.0.3",
"license": "Unlicense" "license": "Unlicense"
@@ -19160,6 +19057,83 @@
"react-native": "*" "react-native": "*"
} }
}, },
"node_modules/react-native-bootsplash": {
"version": "4.1.4",
"resolved": "https://registry.npmjs.org/react-native-bootsplash/-/react-native-bootsplash-4.1.4.tgz",
"integrity": "sha512-/A6FHh/eCoC8a/edBO81C6yy8beBaz97eT7NbYaFf/VuapeUVDUoeVwM6PSHb0Tb8n5SyG3fQXIVkq5pOI1MKQ==",
"dependencies": {
"chalk": "^4.1.2",
"fs-extra": "^10.0.1",
"jimp": "^0.16.1"
},
"peerDependencies": {
"react-native": ">=0.65.0"
}
},
"node_modules/react-native-bootsplash/node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dependencies": {
"color-convert": "^2.0.1"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
"node_modules/react-native-bootsplash/node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
"node_modules/react-native-bootsplash/node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dependencies": {
"color-name": "~1.1.4"
},
"engines": {
"node": ">=7.0.0"
}
},
"node_modules/react-native-bootsplash/node_modules/color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"node_modules/react-native-bootsplash/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"engines": {
"node": ">=8"
}
},
"node_modules/react-native-bootsplash/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dependencies": {
"has-flag": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/react-native-bundle-visualizer": { "node_modules/react-native-bundle-visualizer": {
"version": "3.1.1", "version": "3.1.1",
"dev": true, "dev": true,
@@ -19221,19 +19195,6 @@
"dev": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/react-native-bundle-visualizer/node_modules/fs-extra": {
"version": "10.1.0",
"dev": true,
"license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
"universalify": "^2.0.0"
},
"engines": {
"node": ">=12"
}
},
"node_modules/react-native-bundle-visualizer/node_modules/has-flag": { "node_modules/react-native-bundle-visualizer/node_modules/has-flag": {
"version": "4.0.0", "version": "4.0.0",
"dev": true, "dev": true,
@@ -19242,17 +19203,6 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/react-native-bundle-visualizer/node_modules/jsonfile": {
"version": "6.1.0",
"dev": true,
"license": "MIT",
"dependencies": {
"universalify": "^2.0.0"
},
"optionalDependencies": {
"graceful-fs": "^4.1.6"
}
},
"node_modules/react-native-bundle-visualizer/node_modules/open": { "node_modules/react-native-bundle-visualizer/node_modules/open": {
"version": "8.4.0", "version": "8.4.0",
"dev": true, "dev": true,
@@ -19280,14 +19230,6 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/react-native-bundle-visualizer/node_modules/universalify": {
"version": "2.0.0",
"dev": true,
"license": "MIT",
"engines": {
"node": ">= 10.0.0"
}
},
"node_modules/react-native-check-version": { "node_modules/react-native-check-version": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "git+ssh://git@github.com/flexible-agency/react-native-check-version.git#030a2be31d7d2cdce95c78c4528a29e377c9e6ac", "resolved": "git+ssh://git@github.com/flexible-agency/react-native-check-version.git#030a2be31d7d2cdce95c78c4528a29e377c9e6ac",
@@ -19481,6 +19423,26 @@
"resolved": "https://registry.npmjs.org/react-native-in-app-review/-/react-native-in-app-review-4.3.3.tgz", "resolved": "https://registry.npmjs.org/react-native-in-app-review/-/react-native-in-app-review-4.3.3.tgz",
"integrity": "sha512-Q9sXBtK8tCBYFPCGmMgeMlkxXC5e6vAyPZK26OC1oOKUuKUd0QORnryk/qbwnuN4fLshHQN8UKlLgyHLGRuK3A==" "integrity": "sha512-Q9sXBtK8tCBYFPCGmMgeMlkxXC5e6vAyPZK26OC1oOKUuKUd0QORnryk/qbwnuN4fLshHQN8UKlLgyHLGRuK3A=="
}, },
"node_modules/react-native-iphone-x-helper": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/react-native-iphone-x-helper/-/react-native-iphone-x-helper-1.3.1.tgz",
"integrity": "sha512-HOf0jzRnq2/aFUcdCJ9w9JGzN3gdEg0zFE4FyYlp4jtidqU03D5X7ZegGKfT1EWteR0gPBGp9ye5T5FvSWi9Yg==",
"peerDependencies": {
"react-native": ">=0.42.0"
}
},
"node_modules/react-native-keyboard-aware-scroll-view": {
"version": "0.9.5",
"resolved": "https://registry.npmjs.org/react-native-keyboard-aware-scroll-view/-/react-native-keyboard-aware-scroll-view-0.9.5.tgz",
"integrity": "sha512-XwfRn+T/qBH9WjTWIBiJD2hPWg0yJvtaEw6RtPCa5/PYHabzBaWxYBOl0usXN/368BL1XktnZPh8C2lmTpOREA==",
"dependencies": {
"prop-types": "^15.6.2",
"react-native-iphone-x-helper": "^1.0.3"
},
"peerDependencies": {
"react-native": ">=0.48.4"
}
},
"node_modules/react-native-keychain": { "node_modules/react-native-keychain": {
"version": "4.0.5", "version": "4.0.5",
"license": "MIT" "license": "MIT"