stuff
parent
835c97a20f
commit
5ec0f4510c
52
App.js
52
App.js
|
@ -1,12 +1,9 @@
|
|||
import "react-native-gesture-handler";
|
||||
import { StatusBar } from "expo-status-bar";
|
||||
import { Appearance, StyleSheet, Text, View } from "react-native";
|
||||
import { Text, View } from "react-native";
|
||||
import { createDrawerNavigator } from "@react-navigation/drawer";
|
||||
import { NavigationContainer } from "@react-navigation/native";
|
||||
import SideBar from "./src/Components/SideBar";
|
||||
import FaqScreen from "./src/Screens/FAQ";
|
||||
import FeedbackScreen from "./src/Screens/Feedback";
|
||||
import { PaperProvider } from "react-native-paper";
|
||||
import {
|
||||
AppContext,
|
||||
AppProvider,
|
||||
|
@ -14,11 +11,14 @@ import {
|
|||
GetDataFromList,
|
||||
GetMultipleData,
|
||||
} from "./src/utils";
|
||||
import DeviceScreen from "./src/Screens/Device";
|
||||
import SettingsScreen from "./src/Screens/Settings";
|
||||
import { Suspense, useContext, useEffect } from "react";
|
||||
import { Suspense, lazy, useContext, useEffect } from "react";
|
||||
import { SafeAreaView } from "react-native-safe-area-context";
|
||||
import "./i18n";
|
||||
import DeviceScreen from "./src/Screens/Device";
|
||||
|
||||
const SettingsScreen = lazy(() => import("./src/Screens/Settings"));
|
||||
const FaqScreen = lazy(() => import("./src/Screens/FAQ"));
|
||||
const FeedbackScreen = lazy(() => import("./src/Screens/Feedback"));
|
||||
|
||||
const Drawer = createDrawerNavigator();
|
||||
|
||||
|
@ -60,24 +60,26 @@ export function MyApp() {
|
|||
|
||||
return (
|
||||
<SafeAreaView style={{ height: "100%" }}>
|
||||
<PaperProvider>
|
||||
<NavigationContainer>
|
||||
<Drawer.Navigator
|
||||
screenOptions={{
|
||||
// headerShown: false,
|
||||
drawerStyle: {
|
||||
backgroundColor: appContext.appTheme.drawer.backgroundColor,
|
||||
},
|
||||
}}
|
||||
drawerContent={(props) => <SideBar {...props} />}
|
||||
>
|
||||
<Drawer.Screen name="Turtle" component={DeviceScreen} />
|
||||
<Drawer.Screen name="FAQ" component={FaqScreen} />
|
||||
<Drawer.Screen name="Feedback" component={FeedbackScreen} />
|
||||
<Drawer.Screen name="Settings" component={SettingsScreen} />
|
||||
</Drawer.Navigator>
|
||||
</NavigationContainer>
|
||||
</PaperProvider>
|
||||
<NavigationContainer>
|
||||
<Drawer.Navigator
|
||||
screenOptions={{
|
||||
// headerShown: false,
|
||||
headerStyle: {
|
||||
backgroundColor: appContext.appTheme.drawer.backgroundColor,
|
||||
},
|
||||
headerTintColor: appContext.appTheme.text,
|
||||
drawerStyle: {
|
||||
backgroundColor: appContext.appTheme.drawer.backgroundColor,
|
||||
},
|
||||
}}
|
||||
drawerContent={(props) => <SideBar {...props} />}
|
||||
>
|
||||
<Drawer.Screen name="Turtle" component={DeviceScreen} />
|
||||
<Drawer.Screen name="FAQ" component={FaqScreen} />
|
||||
<Drawer.Screen name="Feedback" component={FeedbackScreen} />
|
||||
<Drawer.Screen name="Settings" component={SettingsScreen} />
|
||||
</Drawer.Navigator>
|
||||
</NavigationContainer>
|
||||
|
||||
<StatusBar
|
||||
backgroundColor={appContext.appTheme.backgroundColor}
|
||||
|
|
|
@ -8,6 +8,10 @@
|
|||
},
|
||||
"screens": {
|
||||
"device": {
|
||||
"light": {
|
||||
"pickerColorModeText": "Farbauswahl",
|
||||
"pickerColorModePlaceholder": "Wählen Sie einen Farbmodus"
|
||||
},
|
||||
"settings": {
|
||||
"settingsTitle": "Einstellungen",
|
||||
"wifiStandByTitle": "WLAN im Standby",
|
||||
|
@ -15,7 +19,7 @@
|
|||
"deviceInformationTitle": "Geräteinformationen",
|
||||
"deviceModelTitle": "Gerätemodell",
|
||||
"deviceFirmwareVersionTitle": "Firmware Version",
|
||||
"deviceLastUpdated": "Letzte Aktualisierung"
|
||||
"deviceLastUpdatedTitle": "Letzte Aktualisierung"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
|
|
|
@ -8,6 +8,10 @@
|
|||
},
|
||||
"screens": {
|
||||
"device": {
|
||||
"light": {
|
||||
"pickerColorModeText": "Color selection",
|
||||
"pickerColorModePlaceholder": "Select a color mode"
|
||||
},
|
||||
"settings": {
|
||||
"settingsTitle": "Settings",
|
||||
"wifiStandByTitle": "WLAN in standby",
|
||||
|
@ -15,7 +19,7 @@
|
|||
"deviceInformationTitle": "Device information",
|
||||
"deviceModelTitle": "Device model",
|
||||
"deviceFirmwareVersionTitle": "Firmware Version",
|
||||
"deviceLastUpdated": "Last updated"
|
||||
"deviceLastUpdatedTitle": "Last updated"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
"version": "1.0.0",
|
||||
"dependencies": {
|
||||
"@react-native-async-storage/async-storage": "1.17.11",
|
||||
"@react-native-community/slider": "^4.4.2",
|
||||
"@react-navigation/drawer": "^6.6.3",
|
||||
"@react-navigation/native": "^6.1.7",
|
||||
"@react-navigation/native-stack": "^6.9.13",
|
||||
|
@ -21,12 +22,10 @@
|
|||
"react-native": "0.71.8",
|
||||
"react-native-gesture-handler": "~2.9.0",
|
||||
"react-native-pager-view": "6.1.2",
|
||||
"react-native-paper": "^5.9.1",
|
||||
"react-native-reanimated": "~2.14.4",
|
||||
"react-native-safe-area-context": "4.5.0",
|
||||
"react-native-screens": "~3.20.0",
|
||||
"react-native-tab-view": "^3.5.2",
|
||||
"react-native-ui-lib": "^7.5.2",
|
||||
"reanimated-color-picker": "^2.3.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
@ -1974,18 +1973,6 @@
|
|||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@callstack/react-theme-provider": {
|
||||
"version": "3.0.8",
|
||||
"resolved": "https://registry.npmjs.org/@callstack/react-theme-provider/-/react-theme-provider-3.0.8.tgz",
|
||||
"integrity": "sha512-5U231sYY2sqQOaELX0WBCn+iluV8bFaXIS7em03k4W5Xz0AhGvKlnpLIhDGFP8im/SvNW7/2XoR0BsClhn9t6Q==",
|
||||
"dependencies": {
|
||||
"deepmerge": "^3.2.0",
|
||||
"hoist-non-react-statics": "^3.3.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": ">=16.3.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@egjs/hammerjs": {
|
||||
"version": "2.0.17",
|
||||
"resolved": "https://registry.npmjs.org/@egjs/hammerjs/-/hammerjs-2.0.17.tgz",
|
||||
|
@ -4952,6 +4939,11 @@
|
|||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@react-native-community/slider": {
|
||||
"version": "4.4.2",
|
||||
"resolved": "https://registry.npmjs.org/@react-native-community/slider/-/slider-4.4.2.tgz",
|
||||
"integrity": "sha512-D9bv+3Vd2gairAhnRPAghwccgEmoM7g562pm8i4qB3Esrms5mggF81G3UvCyc0w3jjtFHh8dpQkfEoKiP0NW/Q=="
|
||||
},
|
||||
"node_modules/@react-native/assets": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/assets/-/assets-1.0.0.tgz",
|
||||
|
@ -5236,11 +5228,6 @@
|
|||
"node": ">=10.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@yarnpkg/lockfile": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz",
|
||||
"integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ=="
|
||||
},
|
||||
"node_modules/abort-controller": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
|
||||
|
@ -5252,11 +5239,6 @@
|
|||
"node": ">=6.5"
|
||||
}
|
||||
},
|
||||
"node_modules/abs-svg-path": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/abs-svg-path/-/abs-svg-path-0.1.1.tgz",
|
||||
"integrity": "sha512-d8XPSGjfyzlXC3Xx891DJRyZfqk5JU0BJrDQcsWomFIV1/BIzPW5HDH5iDdWpqWaav0YVIEzT1RHTwWr0FFshA=="
|
||||
},
|
||||
"node_modules/absolute-path": {
|
||||
"version": "0.0.0",
|
||||
"resolved": "https://registry.npmjs.org/absolute-path/-/absolute-path-0.0.0.tgz",
|
||||
|
@ -5414,17 +5396,6 @@
|
|||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/array-back": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz",
|
||||
"integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==",
|
||||
"dependencies": {
|
||||
"typical": "^2.6.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/array-union": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
|
||||
|
@ -5576,11 +5547,6 @@
|
|||
"resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz",
|
||||
"integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ=="
|
||||
},
|
||||
"node_modules/babel-plugin-transform-inline-environment-variables": {
|
||||
"version": "0.0.2",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-inline-environment-variables/-/babel-plugin-transform-inline-environment-variables-0.0.2.tgz",
|
||||
"integrity": "sha512-8gobU7uuTIjz62aXTEZOH5yhuIPojNVAgLK0xnepdGS19aqOEphy7FVWBsojPa14yrQGM/w63uDox4thYcHCnA=="
|
||||
},
|
||||
"node_modules/babel-preset-expo": {
|
||||
"version": "9.3.2",
|
||||
"resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-9.3.2.tgz",
|
||||
|
@ -5767,32 +5733,6 @@
|
|||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
|
||||
},
|
||||
"node_modules/bower": {
|
||||
"version": "1.8.14",
|
||||
"resolved": "https://registry.npmjs.org/bower/-/bower-1.8.14.tgz",
|
||||
"integrity": "sha512-8Rq058FD91q9Nwthyhw0la9fzpBz0iwZTrt51LWl+w+PnJgZk9J+5wp3nibsJcIUPglMYXr4NRBaR+TUj0OkBQ==",
|
||||
"bin": {
|
||||
"bower": "bin/bower"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/bower-auto-release": {
|
||||
"version": "1.1.358",
|
||||
"resolved": "https://registry.npmjs.org/bower-auto-release/-/bower-auto-release-1.1.358.tgz",
|
||||
"integrity": "sha512-uWpR29K93+Ue3UJJPiVH9Q3L5+kpAQN7LlB8zdQe0unvVn4sTIIzrdSYkuIml55TEvSFewtov6OB3jmpAY4jsQ==",
|
||||
"dependencies": {
|
||||
"bower": "^1.7.9",
|
||||
"command-line-args": "^3.0.0"
|
||||
},
|
||||
"bin": {
|
||||
"bower-auto-release": "index.js"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"wnpm-ci": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/bplist-creator": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.1.0.tgz",
|
||||
|
@ -6351,15 +6291,6 @@
|
|||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/color": {
|
||||
"version": "3.2.1",
|
||||
"resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
|
||||
"integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==",
|
||||
"dependencies": {
|
||||
"color-convert": "^1.9.3",
|
||||
"color-string": "^1.6.0"
|
||||
}
|
||||
},
|
||||
"node_modules/color-convert": {
|
||||
"version": "1.9.3",
|
||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
|
||||
|
@ -6403,20 +6334,6 @@
|
|||
"resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz",
|
||||
"integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w=="
|
||||
},
|
||||
"node_modules/command-line-args": {
|
||||
"version": "3.0.5",
|
||||
"resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-3.0.5.tgz",
|
||||
"integrity": "sha512-M29kjOI24VF4HqatnqVyDqyeq3SYYZbq6LWv/AdVZ5LvrcqVNSN2XeYPrBxcO19T8YkGmyCqTUqYR07DFjVhyg==",
|
||||
"dependencies": {
|
||||
"array-back": "^1.0.4",
|
||||
"feature-detect-es6": "^1.3.1",
|
||||
"find-replace": "^1.0.2",
|
||||
"typical": "^2.6.0"
|
||||
},
|
||||
"bin": {
|
||||
"command-line-args": "bin.js"
|
||||
}
|
||||
},
|
||||
"node_modules/commander": {
|
||||
"version": "7.2.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
|
||||
|
@ -6430,17 +6347,6 @@
|
|||
"resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
|
||||
"integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg=="
|
||||
},
|
||||
"node_modules/commons-validator-js": {
|
||||
"version": "1.0.1668",
|
||||
"resolved": "https://registry.npmjs.org/commons-validator-js/-/commons-validator-js-1.0.1668.tgz",
|
||||
"integrity": "sha512-zGSjqN958s9P9nFyK0qs8ipKnh+g+DFMpcnz7BajJrzsPDd8KdbyfostuZiT1l6Vm/WxiMHTxAzWFLGiMRpUCA==",
|
||||
"dependencies": {
|
||||
"bower-auto-release": "^1.1.358",
|
||||
"lodash.includes": "^4.3.0",
|
||||
"punycode": "^1.4.1",
|
||||
"wnpm-ci": "^8.0.131"
|
||||
}
|
||||
},
|
||||
"node_modules/compare-versions": {
|
||||
"version": "3.6.0",
|
||||
"resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz",
|
||||
|
@ -6641,21 +6547,6 @@
|
|||
"resolved": "https://registry.npmjs.org/dag-map/-/dag-map-1.0.2.tgz",
|
||||
"integrity": "sha512-+LSAiGFwQ9dRnRdOeaj7g47ZFJcOUPukAP8J3A3fuZ1g9Y44BG+P1sgApjLXTQPOzC4+7S9Wr8kXsfpINM4jpw=="
|
||||
},
|
||||
"node_modules/date-fns": {
|
||||
"version": "2.30.0",
|
||||
"resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz",
|
||||
"integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.21.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.11"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/date-fns"
|
||||
}
|
||||
},
|
||||
"node_modules/dayjs": {
|
||||
"version": "1.11.9",
|
||||
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.9.tgz",
|
||||
|
@ -7522,17 +7413,6 @@
|
|||
"resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz",
|
||||
"integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ=="
|
||||
},
|
||||
"node_modules/feature-detect-es6": {
|
||||
"version": "1.5.0",
|
||||
"resolved": "https://registry.npmjs.org/feature-detect-es6/-/feature-detect-es6-1.5.0.tgz",
|
||||
"integrity": "sha512-DzWPIGzTnfp3/KK1d/YPfmgLqeDju9F2DQYBL35VusgSApcA7XGqVtXfR4ETOOFEzdFJ3J7zh0Gkk011TiA4uQ==",
|
||||
"dependencies": {
|
||||
"array-back": "^1.0.4"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/fetch-retry": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-4.1.1.tgz",
|
||||
|
@ -7631,18 +7511,6 @@
|
|||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/find-replace": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/find-replace/-/find-replace-1.0.3.tgz",
|
||||
"integrity": "sha512-KrUnjzDCD9426YnCP56zGYy/eieTnhtK6Vn++j+JJzmlsWWwEkDnsyVF575spT6HJ6Ow9tlbT3TQTDsa+O4UWA==",
|
||||
"dependencies": {
|
||||
"array-back": "^1.0.4",
|
||||
"test-value": "^2.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/find-up": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
|
||||
|
@ -9536,14 +9404,6 @@
|
|||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/klaw-sync": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz",
|
||||
"integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==",
|
||||
"dependencies": {
|
||||
"graceful-fs": "^4.1.11"
|
||||
}
|
||||
},
|
||||
"node_modules/kleur": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
|
||||
|
@ -9589,11 +9449,6 @@
|
|||
"resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
|
||||
"integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="
|
||||
},
|
||||
"node_modules/lodash.includes": {
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
|
||||
"integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w=="
|
||||
},
|
||||
"node_modules/lodash.isequal": {
|
||||
"version": "4.5.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
|
||||
|
@ -11057,14 +10912,6 @@
|
|||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/normalize-svg-path": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-1.1.0.tgz",
|
||||
"integrity": "sha512-r9KHKG2UUeB5LoTouwDzBy2VxXlHsiM6fyLQvnJa0S5hrhzqElH/CH7TUGhT1fVvIYBIKf3OpY4YJ4CK+iaqHg==",
|
||||
"dependencies": {
|
||||
"svg-arc-to-cubic-bezier": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/npm-package-arg": {
|
||||
"version": "7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-7.0.0.tgz",
|
||||
|
@ -11397,11 +11244,6 @@
|
|||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/parse-svg-path": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/parse-svg-path/-/parse-svg-path-0.1.2.tgz",
|
||||
"integrity": "sha512-JyPSBnkTJ0AI8GGJLfMXvKq42cj5c006fnLz6fXy6zfoVjJizi8BNTpu8on8ziI1cKy9d9DGNuY17Ce7wuejpQ=="
|
||||
},
|
||||
"node_modules/parseurl": {
|
||||
"version": "1.3.3",
|
||||
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
|
||||
|
@ -11427,216 +11269,6 @@
|
|||
"cross-spawn": "^6.0.5"
|
||||
}
|
||||
},
|
||||
"node_modules/patch-package": {
|
||||
"version": "7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/patch-package/-/patch-package-7.0.0.tgz",
|
||||
"integrity": "sha512-eYunHbnnB2ghjTNc5iL1Uo7TsGMuXk0vibX3RFcE/CdVdXzmdbMsG/4K4IgoSuIkLTI5oHrMQk4+NkFqSed0BQ==",
|
||||
"dependencies": {
|
||||
"@yarnpkg/lockfile": "^1.1.0",
|
||||
"chalk": "^4.1.2",
|
||||
"ci-info": "^3.7.0",
|
||||
"cross-spawn": "^7.0.3",
|
||||
"find-yarn-workspace-root": "^2.0.0",
|
||||
"fs-extra": "^9.0.0",
|
||||
"klaw-sync": "^6.0.0",
|
||||
"minimist": "^1.2.6",
|
||||
"open": "^7.4.2",
|
||||
"rimraf": "^2.6.3",
|
||||
"semver": "^5.6.0",
|
||||
"slash": "^2.0.0",
|
||||
"tmp": "^0.0.33",
|
||||
"yaml": "^2.2.2"
|
||||
},
|
||||
"bin": {
|
||||
"patch-package": "index.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14",
|
||||
"npm": ">5"
|
||||
}
|
||||
},
|
||||
"node_modules/patch-package/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/patch-package/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/patch-package/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/patch-package/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/patch-package/node_modules/cross-spawn": {
|
||||
"version": "7.0.3",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
|
||||
"integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
|
||||
"dependencies": {
|
||||
"path-key": "^3.1.0",
|
||||
"shebang-command": "^2.0.0",
|
||||
"which": "^2.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 8"
|
||||
}
|
||||
},
|
||||
"node_modules/patch-package/node_modules/fs-extra": {
|
||||
"version": "9.1.0",
|
||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
|
||||
"integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
|
||||
"dependencies": {
|
||||
"at-least-node": "^1.0.0",
|
||||
"graceful-fs": "^4.2.0",
|
||||
"jsonfile": "^6.0.1",
|
||||
"universalify": "^2.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/patch-package/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/patch-package/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/patch-package/node_modules/open": {
|
||||
"version": "7.4.2",
|
||||
"resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
|
||||
"integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==",
|
||||
"dependencies": {
|
||||
"is-docker": "^2.0.0",
|
||||
"is-wsl": "^2.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/patch-package/node_modules/path-key": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
|
||||
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/patch-package/node_modules/semver": {
|
||||
"version": "5.7.1",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
|
||||
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
|
||||
"bin": {
|
||||
"semver": "bin/semver"
|
||||
}
|
||||
},
|
||||
"node_modules/patch-package/node_modules/shebang-command": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
|
||||
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
|
||||
"dependencies": {
|
||||
"shebang-regex": "^3.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/patch-package/node_modules/shebang-regex": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
|
||||
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/patch-package/node_modules/slash": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
|
||||
"integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/patch-package/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/patch-package/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/patch-package/node_modules/which": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
|
||||
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
|
||||
"dependencies": {
|
||||
"isexe": "^2.0.0"
|
||||
},
|
||||
"bin": {
|
||||
"node-which": "bin/node-which"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 8"
|
||||
}
|
||||
},
|
||||
"node_modules/path-browserify": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
|
||||
|
@ -11991,11 +11623,6 @@
|
|||
"once": "^1.3.1"
|
||||
}
|
||||
},
|
||||
"node_modules/punycode": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
|
||||
"integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ=="
|
||||
},
|
||||
"node_modules/qrcode-terminal": {
|
||||
"version": "0.11.0",
|
||||
"resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.11.0.tgz",
|
||||
|
@ -12263,24 +11890,6 @@
|
|||
"react-native": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/react-native-paper": {
|
||||
"version": "5.9.1",
|
||||
"resolved": "https://registry.npmjs.org/react-native-paper/-/react-native-paper-5.9.1.tgz",
|
||||
"integrity": "sha512-zsOdKQ+mXxeY+qZDSpizBTFVFrnV4P/84ZgSjTKQjbmPU5MnO1xJtntWVmk7Pba81x5Hbcf3Q1/9VP3LHy1anA==",
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
"@callstack/react-theme-provider": "^3.0.8",
|
||||
"color": "^3.1.2",
|
||||
"patch-package": "^7.0.0",
|
||||
"use-latest-callback": "^0.1.5"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "*",
|
||||
"react-native": "*",
|
||||
"react-native-safe-area-context": "*",
|
||||
"react-native-vector-icons": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/react-native-reanimated": {
|
||||
"version": "2.14.4",
|
||||
"resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-2.14.4.tgz",
|
||||
|
@ -12300,23 +11909,6 @@
|
|||
"react-native": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/react-native-redash": {
|
||||
"version": "12.6.1",
|
||||
"resolved": "https://registry.npmjs.org/react-native-redash/-/react-native-redash-12.6.1.tgz",
|
||||
"integrity": "sha512-SChHzssVr512PfZxGCcVMmlAzQ20k5BkC8BiSfZls6bFohLiJT3ih6Of9mPmaTENCQWe7ywTx7gzr3tAnIu2mg==",
|
||||
"dependencies": {
|
||||
"abs-svg-path": "^0.1.1",
|
||||
"normalize-svg-path": "^1.0.1",
|
||||
"parse-svg-path": "^0.1.2",
|
||||
"use-memo-one": "^1.1.1"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "*",
|
||||
"react-native": "*",
|
||||
"react-native-gesture-handler": "*",
|
||||
"react-native-reanimated": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/react-native-safe-area-context": {
|
||||
"version": "4.5.0",
|
||||
"resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.5.0.tgz",
|
||||
|
@ -12352,125 +11944,6 @@
|
|||
"react-native-pager-view": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/react-native-ui-lib": {
|
||||
"version": "7.5.2",
|
||||
"resolved": "https://registry.npmjs.org/react-native-ui-lib/-/react-native-ui-lib-7.5.2.tgz",
|
||||
"integrity": "sha512-RPMNGnuOsvk1j+kx9yhScRfDYQr9kuEPwZLJPSUSteoiyshkkXaRMxNPfZ/sut/b6pw1ExOO5aTN4lYDZMu2TA==",
|
||||
"dependencies": {
|
||||
"babel-plugin-transform-inline-environment-variables": "^0.0.2",
|
||||
"color": "^3.1.0",
|
||||
"commons-validator-js": "^1.0.237",
|
||||
"date-fns": "^2.29.3",
|
||||
"deprecated-react-native-prop-types": "^2.3.0",
|
||||
"hoist-non-react-statics": "^3.0.0",
|
||||
"lodash": "^4.17.21",
|
||||
"memoize-one": "^5.0.5",
|
||||
"prop-types": "^15.5.10",
|
||||
"react-freeze": "^1.0.0",
|
||||
"react-native-redash": "^12.0.3",
|
||||
"semver": "^5.5.0",
|
||||
"tinycolor2": "^1.4.2",
|
||||
"url-parse": "^1.2.0",
|
||||
"wix-react-native-text-size": "~1.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": ">=17.0.1",
|
||||
"react-native": ">=0.64.1",
|
||||
"react-native-gesture-handler": ">=2.5.0",
|
||||
"react-native-reanimated": ">=2.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/react-native-ui-lib/node_modules/deprecated-react-native-prop-types": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-2.3.0.tgz",
|
||||
"integrity": "sha512-pWD0voFtNYxrVqvBMYf5gq3NA2GCpfodS1yNynTPc93AYA/KEMGeWDqqeUB6R2Z9ZofVhks2aeJXiuQqKNpesA==",
|
||||
"dependencies": {
|
||||
"@react-native/normalize-color": "*",
|
||||
"invariant": "*",
|
||||
"prop-types": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/react-native-ui-lib/node_modules/semver": {
|
||||
"version": "5.7.1",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
|
||||
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
|
||||
"bin": {
|
||||
"semver": "bin/semver"
|
||||
}
|
||||
},
|
||||
"node_modules/react-native-vector-icons": {
|
||||
"version": "9.2.0",
|
||||
"resolved": "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-9.2.0.tgz",
|
||||
"integrity": "sha512-wKYLaFuQST/chH3AJRjmOLoLy3JEs1JR6zMNgTaemFpNoXs0ztRnTxcxFD9xhX7cJe1/zoN5BpQYe7kL0m5yyA==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"prop-types": "^15.7.2",
|
||||
"yargs": "^16.1.1"
|
||||
},
|
||||
"bin": {
|
||||
"fa5-upgrade": "bin/fa5-upgrade.sh",
|
||||
"generate-icon": "bin/generate-icon.js"
|
||||
}
|
||||
},
|
||||
"node_modules/react-native-vector-icons/node_modules/cliui": {
|
||||
"version": "7.0.4",
|
||||
"resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
|
||||
"integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"string-width": "^4.2.0",
|
||||
"strip-ansi": "^6.0.0",
|
||||
"wrap-ansi": "^7.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/react-native-vector-icons/node_modules/strip-ansi": {
|
||||
"version": "6.0.1",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
|
||||
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"ansi-regex": "^5.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/react-native-vector-icons/node_modules/y18n": {
|
||||
"version": "5.0.8",
|
||||
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
|
||||
"integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/react-native-vector-icons/node_modules/yargs": {
|
||||
"version": "16.2.0",
|
||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
|
||||
"integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"cliui": "^7.0.2",
|
||||
"escalade": "^3.1.1",
|
||||
"get-caller-file": "^2.0.5",
|
||||
"require-directory": "^2.1.1",
|
||||
"string-width": "^4.2.0",
|
||||
"y18n": "^5.0.5",
|
||||
"yargs-parser": "^20.2.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/react-native-vector-icons/node_modules/yargs-parser": {
|
||||
"version": "20.2.9",
|
||||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
|
||||
"integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/react-native/node_modules/promise": {
|
||||
"version": "8.3.0",
|
||||
"resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz",
|
||||
|
@ -13606,14 +13079,6 @@
|
|||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/strip-final-newline": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
|
||||
"integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/strip-json-comments": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
|
||||
|
@ -13719,11 +13184,6 @@
|
|||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/svg-arc-to-cubic-bezier": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/svg-arc-to-cubic-bezier/-/svg-arc-to-cubic-bezier-3.2.0.tgz",
|
||||
"integrity": "sha512-djbJ/vZKZO+gPoSDThGNpKDO+o+bAeA4XQKovvkNCqnIS2t+S4qnLAGQhyyrulhCFRl1WWzAp0wUDV8PpTVU3g=="
|
||||
},
|
||||
"node_modules/tar": {
|
||||
"version": "6.1.15",
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz",
|
||||
|
@ -13894,18 +13354,6 @@
|
|||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
|
||||
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
|
||||
},
|
||||
"node_modules/test-value": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz",
|
||||
"integrity": "sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w==",
|
||||
"dependencies": {
|
||||
"array-back": "^1.0.3",
|
||||
"typical": "^2.6.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/text-table": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
|
||||
|
@ -13949,11 +13397,6 @@
|
|||
"xtend": "~4.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/tinycolor2": {
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz",
|
||||
"integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw=="
|
||||
},
|
||||
"node_modules/tmp": {
|
||||
"version": "0.0.33",
|
||||
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
|
||||
|
@ -14087,11 +13530,6 @@
|
|||
"node": ">= 0.6"
|
||||
}
|
||||
},
|
||||
"node_modules/typical": {
|
||||
"version": "2.6.1",
|
||||
"resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz",
|
||||
"integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg=="
|
||||
},
|
||||
"node_modules/ua-parser-js": {
|
||||
"version": "1.0.35",
|
||||
"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.35.tgz",
|
||||
|
@ -14349,14 +13787,6 @@
|
|||
"react": ">=16.8"
|
||||
}
|
||||
},
|
||||
"node_modules/use-memo-one": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.3.tgz",
|
||||
"integrity": "sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ==",
|
||||
"peerDependencies": {
|
||||
"react": "^16.8.0 || ^17.0.0 || ^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/use-sync-external-store": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz",
|
||||
|
@ -14477,176 +13907,6 @@
|
|||
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz",
|
||||
"integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ=="
|
||||
},
|
||||
"node_modules/wix-react-native-text-size": {
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://registry.npmjs.org/wix-react-native-text-size/-/wix-react-native-text-size-1.0.8.tgz",
|
||||
"integrity": "sha512-mSv4ILmqmBDDbSPkUPGLzLchuQ2Q5nlVUawjM2NiXXf3/S4vDeMIo7rT7C5/Ph9K2+gUR7geLDvdwiY0V/A7XQ==",
|
||||
"peerDependencies": {
|
||||
"react-native": ">=0.59.0"
|
||||
}
|
||||
},
|
||||
"node_modules/wnpm-ci": {
|
||||
"version": "8.0.131",
|
||||
"resolved": "https://registry.npmjs.org/wnpm-ci/-/wnpm-ci-8.0.131.tgz",
|
||||
"integrity": "sha512-mC+8NQOleSlx7KPj939eRXNkXzOOPL6R62nX/fb+6TbFd2TXXTdriPQxW9HlpjJ3bnp8nsaezBRlJovJwWSNPg==",
|
||||
"dependencies": {
|
||||
"execa": "^2.0.3",
|
||||
"fs-extra": "^8.1.0",
|
||||
"mkdirp": "^0.5.1",
|
||||
"semver": "^5.2.0",
|
||||
"tmp": "^0.0.33"
|
||||
},
|
||||
"bin": {
|
||||
"wnpm-release": "scripts/wnpm-release.js"
|
||||
}
|
||||
},
|
||||
"node_modules/wnpm-ci/node_modules/cross-spawn": {
|
||||
"version": "7.0.3",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
|
||||
"integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
|
||||
"dependencies": {
|
||||
"path-key": "^3.1.0",
|
||||
"shebang-command": "^2.0.0",
|
||||
"which": "^2.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 8"
|
||||
}
|
||||
},
|
||||
"node_modules/wnpm-ci/node_modules/execa": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/execa/-/execa-2.1.0.tgz",
|
||||
"integrity": "sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==",
|
||||
"dependencies": {
|
||||
"cross-spawn": "^7.0.0",
|
||||
"get-stream": "^5.0.0",
|
||||
"is-stream": "^2.0.0",
|
||||
"merge-stream": "^2.0.0",
|
||||
"npm-run-path": "^3.0.0",
|
||||
"onetime": "^5.1.0",
|
||||
"p-finally": "^2.0.0",
|
||||
"signal-exit": "^3.0.2",
|
||||
"strip-final-newline": "^2.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^8.12.0 || >=9.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/wnpm-ci/node_modules/get-stream": {
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
|
||||
"integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
|
||||
"dependencies": {
|
||||
"pump": "^3.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/wnpm-ci/node_modules/is-stream": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
|
||||
"integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/wnpm-ci/node_modules/mimic-fn": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
|
||||
"integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/wnpm-ci/node_modules/npm-run-path": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz",
|
||||
"integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==",
|
||||
"dependencies": {
|
||||
"path-key": "^3.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/wnpm-ci/node_modules/onetime": {
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
|
||||
"integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
|
||||
"dependencies": {
|
||||
"mimic-fn": "^2.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/wnpm-ci/node_modules/p-finally": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz",
|
||||
"integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/wnpm-ci/node_modules/path-key": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
|
||||
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/wnpm-ci/node_modules/semver": {
|
||||
"version": "5.7.1",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
|
||||
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
|
||||
"bin": {
|
||||
"semver": "bin/semver"
|
||||
}
|
||||
},
|
||||
"node_modules/wnpm-ci/node_modules/shebang-command": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
|
||||
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
|
||||
"dependencies": {
|
||||
"shebang-regex": "^3.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/wnpm-ci/node_modules/shebang-regex": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
|
||||
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/wnpm-ci/node_modules/which": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
|
||||
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
|
||||
"dependencies": {
|
||||
"isexe": "^2.0.0"
|
||||
},
|
||||
"bin": {
|
||||
"node-which": "bin/node-which"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 8"
|
||||
}
|
||||
},
|
||||
"node_modules/wonka": {
|
||||
"version": "4.0.15",
|
||||
"resolved": "https://registry.npmjs.org/wonka/-/wonka-4.0.15.tgz",
|
||||
|
@ -14810,14 +14070,6 @@
|
|||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
|
||||
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
|
||||
},
|
||||
"node_modules/yaml": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz",
|
||||
"integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==",
|
||||
"engines": {
|
||||
"node": ">= 14"
|
||||
}
|
||||
},
|
||||
"node_modules/yargs": {
|
||||
"version": "15.4.1",
|
||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"@react-native-async-storage/async-storage": "1.17.11",
|
||||
"@react-native-community/slider": "^4.4.2",
|
||||
"@react-navigation/drawer": "^6.6.3",
|
||||
"@react-navigation/native": "^6.1.7",
|
||||
"@react-navigation/native-stack": "^6.9.13",
|
||||
|
@ -22,12 +23,10 @@
|
|||
"react-native": "0.71.8",
|
||||
"react-native-gesture-handler": "~2.9.0",
|
||||
"react-native-pager-view": "6.1.2",
|
||||
"react-native-paper": "^5.9.1",
|
||||
"react-native-reanimated": "~2.14.4",
|
||||
"react-native-safe-area-context": "4.5.0",
|
||||
"react-native-screens": "~3.20.0",
|
||||
"react-native-tab-view": "^3.5.2",
|
||||
"react-native-ui-lib": "^7.5.2",
|
||||
"reanimated-color-picker": "^2.3.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { useContext } from "react";
|
||||
import { ScrollView, View } from "react-native";
|
||||
import { View } from "react-native";
|
||||
import { AppContext } from "../../utils";
|
||||
|
||||
export default function Card({ children }) {
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
import Icon from "@expo/vector-icons/MaterialCommunityIcons";
|
||||
|
||||
export default function MyIcon({ name, color, size }) {
|
||||
return <Icon name={name} color={color} size={size} />;
|
||||
}
|
|
@ -3,8 +3,8 @@ import { useContext } from "react";
|
|||
import { Image, Text, TouchableOpacity, View } from "react-native";
|
||||
import { AppContext, AppStyles } from "../../utils";
|
||||
import { Divider } from "../Divider";
|
||||
import Icon from "@expo/vector-icons/MaterialCommunityIcons";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import MyIcon from "../Icon";
|
||||
|
||||
export default function Sidebar(props) {
|
||||
const appContext = useContext(AppContext);
|
||||
|
@ -57,7 +57,7 @@ export default function Sidebar(props) {
|
|||
onPress={() => console.log("Pressed power")}
|
||||
style={{ right: -30 }}
|
||||
>
|
||||
<Icon
|
||||
<MyIcon
|
||||
name="power"
|
||||
color={appContext.appTheme.drawer.item.iconColor}
|
||||
size={24}
|
||||
|
@ -77,7 +77,7 @@ export default function Sidebar(props) {
|
|||
}
|
||||
onPress={onPress}
|
||||
icon={({ size }) => (
|
||||
<Icon
|
||||
<MyIcon
|
||||
name={iconName}
|
||||
color={appContext.appTheme.drawer.item.iconColor}
|
||||
size={size}
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
import Slider from "@react-native-community/slider";
|
||||
import { useContext } from "react";
|
||||
import { AppContext } from "../../utils";
|
||||
|
||||
export default function MySlider({
|
||||
style,
|
||||
value,
|
||||
onValueChange,
|
||||
minimumValue,
|
||||
maximumValue,
|
||||
}) {
|
||||
const appContext = useContext(AppContext);
|
||||
|
||||
return (
|
||||
<Slider
|
||||
style={style}
|
||||
minimumValue={minimumValue}
|
||||
maximumValue={maximumValue}
|
||||
value={value}
|
||||
onValueChange={onValueChange}
|
||||
minimumTrackTintColor={appContext.appTheme.slider.minimumTrackTintColor}
|
||||
maximumTrackTintColor={appContext.appTheme.slider.maximumTrackTintColor}
|
||||
thumbTintColor={appContext.appTheme.slider.thumbTintColor}
|
||||
/>
|
||||
);
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
import { useContext } from "react";
|
||||
import { Switch } from "react-native";
|
||||
import { AppContext } from "../../utils";
|
||||
|
||||
export default function MySwitch({ value, onValueChange }) {
|
||||
const appContext = useContext(AppContext);
|
||||
|
||||
return (
|
||||
<Switch
|
||||
value={value}
|
||||
onValueChange={onValueChange}
|
||||
trackColor={{
|
||||
true: appContext.appTheme.switch.trackColorTrue,
|
||||
false: appContext.appTheme.switch.trackColorFalse,
|
||||
}}
|
||||
thumbColor={
|
||||
value === true
|
||||
? appContext.appTheme.switch.thumbColorTrue
|
||||
: appContext.appTheme.switch.thumbColorFalse
|
||||
}
|
||||
ios_backgroundColor={appContext.appTheme.switch.ios_backgroundColor}
|
||||
/>
|
||||
);
|
||||
}
|
|
@ -1,11 +1,21 @@
|
|||
import { useContext, useEffect, useState } from "react";
|
||||
import { Image, ScrollView, StyleSheet, View, Text } from "react-native";
|
||||
import { IconButton } from "react-native-paper";
|
||||
import { Colors } from "react-native-ui-lib";
|
||||
import { Suspense, lazy, useContext, useState } from "react";
|
||||
import {
|
||||
Image,
|
||||
ScrollView,
|
||||
StyleSheet,
|
||||
View,
|
||||
Text,
|
||||
TouchableHighlight,
|
||||
TouchableOpacity,
|
||||
} from "react-native";
|
||||
import LightView from "./light";
|
||||
import { AppContext, GetData } from "../../utils";
|
||||
import MotorView from "./motor";
|
||||
import SettingsView from "./settings";
|
||||
import { AppContext } from "../../utils";
|
||||
//import MotorView from "./motor";
|
||||
//import SettingsView from "./settings";
|
||||
import MyIcon from "../../Components/Icon";
|
||||
|
||||
const MotorView = lazy(() => import("./motor"));
|
||||
const SettingsView = lazy(() => import("./settings"));
|
||||
|
||||
const spaceToSide = 10; // left and right
|
||||
const top = 35;
|
||||
|
@ -15,9 +25,6 @@ const topFirst = top;
|
|||
const topSecond = top + spaceBetweenButtons;
|
||||
const topThird = top + 2 * spaceBetweenButtons;
|
||||
|
||||
const iconButtonActiveColor = "#e67e22";
|
||||
const iconButtonNotActiveColor = "#fff";
|
||||
|
||||
export default function DeviceScreen() {
|
||||
const appContext = useContext(AppContext);
|
||||
const [selectedView, setSelectedView] = useState(0);
|
||||
|
@ -35,6 +42,39 @@ export default function DeviceScreen() {
|
|||
}
|
||||
};
|
||||
|
||||
const MyButton = ({ selectedViewNumber, top, left, space, iconName }) => {
|
||||
const TouchComponent =
|
||||
appContext.appColorScheme === "dark"
|
||||
? TouchableHighlight
|
||||
: TouchableOpacity;
|
||||
|
||||
return (
|
||||
<TouchComponent
|
||||
onPress={() => setSelectedView(selectedViewNumber)}
|
||||
style={[
|
||||
{
|
||||
position: "absolute",
|
||||
backgroundColor: appContext.appTheme.card.backgroundColor,
|
||||
borderRadius: 10,
|
||||
padding: 8,
|
||||
},
|
||||
{ top: top },
|
||||
left === true ? { left: space } : { right: space },
|
||||
]}
|
||||
>
|
||||
<MyIcon
|
||||
name={iconName}
|
||||
size={30}
|
||||
color={
|
||||
selectedView === selectedViewNumber
|
||||
? appContext.appTheme.colors.primary
|
||||
: appContext.appTheme.icon
|
||||
}
|
||||
/>
|
||||
</TouchComponent>
|
||||
);
|
||||
};
|
||||
|
||||
return (
|
||||
<View
|
||||
style={{
|
||||
|
@ -51,60 +91,48 @@ export default function DeviceScreen() {
|
|||
<View style={[styles.image, { backgroundColor: "#ddd" }]} />
|
||||
)}
|
||||
|
||||
<IconButton
|
||||
icon="lightbulb-on-outline"
|
||||
iconColor={
|
||||
selectedView === 0 ? iconButtonActiveColor : iconButtonNotActiveColor
|
||||
}
|
||||
style={[styles.iconButton, { top: topFirst, left: spaceToSide }]}
|
||||
size={30}
|
||||
onPress={() => setSelectedView(0)}
|
||||
<MyButton
|
||||
iconName={"lightbulb-on-outline"}
|
||||
left
|
||||
selectedViewNumber={0}
|
||||
space={spaceToSide}
|
||||
top={topFirst}
|
||||
/>
|
||||
<IconButton
|
||||
icon="television-ambient-light"
|
||||
iconColor={
|
||||
selectedView === 1 ? iconButtonActiveColor : iconButtonNotActiveColor
|
||||
}
|
||||
style={[styles.iconButton, { top: topSecond, left: spaceToSide }]}
|
||||
size={30}
|
||||
onPress={() => setSelectedView(1)}
|
||||
<MyButton
|
||||
iconName={"television-ambient-light"}
|
||||
left
|
||||
selectedViewNumber={1}
|
||||
space={spaceToSide}
|
||||
top={topSecond}
|
||||
/>
|
||||
<IconButton
|
||||
icon="axis-z-rotate-counterclockwise"
|
||||
iconColor={
|
||||
selectedView === 2 ? iconButtonActiveColor : iconButtonNotActiveColor
|
||||
}
|
||||
style={[styles.iconButton, { top: topThird, left: spaceToSide }]}
|
||||
size={30}
|
||||
onPress={() => setSelectedView(2)}
|
||||
<MyButton
|
||||
iconName={"axis-z-rotate-counterclockwise"}
|
||||
left
|
||||
selectedViewNumber={2}
|
||||
space={spaceToSide}
|
||||
top={topThird}
|
||||
/>
|
||||
|
||||
<IconButton
|
||||
icon="cog-outline"
|
||||
iconColor={
|
||||
selectedView === 3 ? iconButtonActiveColor : iconButtonNotActiveColor
|
||||
}
|
||||
style={[styles.iconButton, { top: topFirst, right: spaceToSide }]}
|
||||
size={30}
|
||||
onPress={() => setSelectedView(3)}
|
||||
<MyButton
|
||||
iconName={"cog-outline"}
|
||||
left={false}
|
||||
selectedViewNumber={3}
|
||||
space={spaceToSide}
|
||||
top={topFirst}
|
||||
/>
|
||||
<IconButton
|
||||
icon="palette-outline"
|
||||
iconColor={"#fff"}
|
||||
style={[styles.iconButton, { top: topSecond, right: spaceToSide }]}
|
||||
size={30}
|
||||
onPress={() => {
|
||||
console.log("Pressed light");
|
||||
}}
|
||||
<MyButton
|
||||
iconName={"palette-outline"}
|
||||
left={false}
|
||||
selectedViewNumber={4}
|
||||
space={spaceToSide}
|
||||
top={topSecond}
|
||||
/>
|
||||
<IconButton
|
||||
icon="rotate-3d-variant"
|
||||
iconColor={"#fff"}
|
||||
style={[styles.iconButton, { top: topThird, right: spaceToSide }]}
|
||||
size={30}
|
||||
onPress={() => {
|
||||
console.log("Pressed dark");
|
||||
}}
|
||||
<MyButton
|
||||
iconName={"rotate-3d-variant"}
|
||||
left={false}
|
||||
selectedViewNumber={5}
|
||||
space={spaceToSide}
|
||||
top={topThird}
|
||||
/>
|
||||
|
||||
<ScrollView style={{ height: "100%" }}>
|
||||
|
@ -129,9 +157,4 @@ const styles = StyleSheet.create({
|
|||
width: "100%",
|
||||
height: 250,
|
||||
},
|
||||
iconButton: {
|
||||
position: "absolute",
|
||||
backgroundColor: "#333333",
|
||||
borderRadius: 10,
|
||||
},
|
||||
});
|
||||
|
|
|
@ -1,23 +1,30 @@
|
|||
import { useContext, useEffect, useState } from "react";
|
||||
import { StyleSheet, Text, View } from "react-native";
|
||||
import { IconButton, TouchableRipple } from "react-native-paper";
|
||||
import { useContext, useState } from "react";
|
||||
import {
|
||||
StyleSheet,
|
||||
Text,
|
||||
TouchableOpacity,
|
||||
View,
|
||||
TouchableHighlight,
|
||||
} from "react-native";
|
||||
import Animated, {
|
||||
useAnimatedStyle,
|
||||
useSharedValue,
|
||||
} from "react-native-reanimated";
|
||||
import { Icon, Incubator, Picker, Switch } from "react-native-ui-lib";
|
||||
import ColorPicker, {
|
||||
Swatches,
|
||||
InputWidget,
|
||||
HueCircular,
|
||||
Panel1,
|
||||
} from "reanimated-color-picker";
|
||||
import { AppContext, GetData } from "../../utils";
|
||||
import { AppContext } from "../../utils";
|
||||
import Card from "../../Components/Card";
|
||||
import MySwitch from "../../Components/Switch";
|
||||
import MyIcon from "../../Components/Icon";
|
||||
import PickerModal from "../../Components/PickerModal";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import MySlider from "../../Components/Slider";
|
||||
|
||||
const dropdown = require("../../../assets/icons/chevronDown.png");
|
||||
|
||||
const options = [
|
||||
const colorModePickerOptions = [
|
||||
{ label: "Pulse", value: "pulse" },
|
||||
{ label: "Random", value: "random" },
|
||||
{ label: "Rainbow", value: "rainbow" },
|
||||
|
@ -55,8 +62,7 @@ function ColorLayer({ layerNumber, sharedColor, selected, onPress }) {
|
|||
});
|
||||
|
||||
return (
|
||||
<TouchableRipple
|
||||
borderless
|
||||
<TouchableHighlight
|
||||
style={[
|
||||
{
|
||||
width: 30,
|
||||
|
@ -76,6 +82,7 @@ function ColorLayer({ layerNumber, sharedColor, selected, onPress }) {
|
|||
height: "100%",
|
||||
justifyContent: "center",
|
||||
alignItems: "center",
|
||||
borderRadius: 10,
|
||||
},
|
||||
backgroundColorStyle,
|
||||
]}
|
||||
|
@ -86,43 +93,19 @@ function ColorLayer({ layerNumber, sharedColor, selected, onPress }) {
|
|||
{layerNumber}
|
||||
</Animated.Text>
|
||||
</Animated.View>
|
||||
</TouchableRipple>
|
||||
</TouchableHighlight>
|
||||
);
|
||||
}
|
||||
|
||||
/*
|
||||
function ColorSwatch({ color, onPress }) {
|
||||
return (
|
||||
<TouchableRipple
|
||||
borderless
|
||||
style={{
|
||||
width: 25,
|
||||
height: 25,
|
||||
borderRadius: 16,
|
||||
marginLeft: 5,
|
||||
marginTop: 5,
|
||||
}}
|
||||
onPress={onPress}
|
||||
rippleColor="rgba(0, 0, 0, .32)"
|
||||
>
|
||||
<View
|
||||
style={{
|
||||
width: "100%",
|
||||
height: "100%",
|
||||
backgroundColor: color,
|
||||
}}
|
||||
/>
|
||||
</TouchableRipple>
|
||||
);
|
||||
} */
|
||||
|
||||
export default function LightView() {
|
||||
const appContext = useContext(AppContext);
|
||||
const [pickerValue, setPickerValue] = useState("");
|
||||
const { t } = useTranslation();
|
||||
const [switchState, setSwitchState] = useState(false);
|
||||
const [sliderValue, setSliderValue] = useState(0);
|
||||
const [selectedGlasLayer, setSelectedGlasLayer] = useState(1);
|
||||
const [colorSwatchesFavorites, setColorSwatchesFavorites] = useState([]);
|
||||
const [modalDeviceColorModeVisible, setModalDeviceColorModeVisible] =
|
||||
useState(false);
|
||||
const [selectedDeviceColorMode, setSelectedDeviceColorMode] = useState("");
|
||||
|
||||
const selectedColorPickerColor = useSharedValue("#ddd");
|
||||
const selectedColorLayer1 = useSharedValue(selectedColorPickerColor.value);
|
||||
|
@ -151,52 +134,58 @@ export default function LightView() {
|
|||
|
||||
return (
|
||||
<Card>
|
||||
<Picker
|
||||
label="Farbmodus"
|
||||
placeholder="Pick a Language"
|
||||
useWheelPicker
|
||||
value={pickerValue}
|
||||
onChange={(nativePickerValue) => setPickerValue(nativePickerValue)}
|
||||
trailingAccessory={<Icon source={dropdown} />}
|
||||
//containerStyle={{ marginTop: 20 }}
|
||||
//renderPicker={() => {
|
||||
//return (
|
||||
//<View>
|
||||
// <Text>Open Native Picker!</Text>
|
||||
// </View>
|
||||
// );
|
||||
//}}
|
||||
//topBarProps={{ doneLabel: "YES", cancelLabel: "NO" }}
|
||||
>
|
||||
{options.map((option) => (
|
||||
<Picker.Item
|
||||
key={option.value}
|
||||
value={option.value}
|
||||
label={option.label}
|
||||
<TouchableOpacity onPress={() => setModalDeviceColorModeVisible(true)}>
|
||||
<View
|
||||
style={{
|
||||
flexDirection: "row",
|
||||
alignItems: "center",
|
||||
justifyContent: "space-between",
|
||||
}}
|
||||
>
|
||||
<View>
|
||||
<Text style={{ color: appContext.appTheme.text }}>
|
||||
{t("screens.device.light.pickerColorModeText")}
|
||||
</Text>
|
||||
<Text style={{ color: appContext.appTheme.colors.primary }}>
|
||||
{selectedDeviceColorMode === ""
|
||||
? t("screens.device.light.pickerColorModePlaceholder")
|
||||
: colorModePickerOptions.find(
|
||||
(item) => item.value === selectedDeviceColorMode
|
||||
).label}
|
||||
</Text>
|
||||
</View>
|
||||
<MyIcon
|
||||
name="chevron-down"
|
||||
size={24}
|
||||
color={appContext.appTheme.icon}
|
||||
/>
|
||||
))}
|
||||
</Picker>
|
||||
</View>
|
||||
</TouchableOpacity>
|
||||
|
||||
<PickerModal
|
||||
isOpen={modalDeviceColorModeVisible}
|
||||
setIsOpen={setModalDeviceColorModeVisible}
|
||||
items={colorModePickerOptions.map((item) => {
|
||||
return {
|
||||
label: item.label,
|
||||
onPress: () => setSelectedDeviceColorMode(item.value),
|
||||
selected: selectedDeviceColorMode === item.value,
|
||||
};
|
||||
})}
|
||||
/>
|
||||
|
||||
<View style={{ flexDirection: "row", alignItems: "center" }}>
|
||||
<Switch value={switchState} onValueChange={(e) => setSwitchState(e)} />
|
||||
<IconButton
|
||||
icon="brightness-7"
|
||||
iconColor={appContext.appTheme.icon}
|
||||
<MySwitch
|
||||
value={switchState}
|
||||
onValueChange={(e) => setSwitchState(e)}
|
||||
/>
|
||||
<MyIcon
|
||||
name={"brightness-7"}
|
||||
color={appContext.appTheme.icon}
|
||||
size={20}
|
||||
/>
|
||||
<View style={{ flex: 1 }}>
|
||||
<Incubator.Slider
|
||||
value={sliderValue}
|
||||
step={1}
|
||||
initialMinimumValue={0}
|
||||
minimumValue={0}
|
||||
maximumValue={100}
|
||||
onValueChange={(v) => setSliderValue(v)}
|
||||
containerStyle={{
|
||||
flex: 1,
|
||||
marginHorizontal: 8,
|
||||
}}
|
||||
/>
|
||||
<MySlider />
|
||||
</View>
|
||||
</View>
|
||||
|
||||
|
@ -253,17 +242,25 @@ export default function LightView() {
|
|||
/>
|
||||
</View>
|
||||
|
||||
<IconButton
|
||||
style={{ position: "absolute", top: 40, right: -5 }}
|
||||
icon={"star-outline"}
|
||||
size={20}
|
||||
onPress={() => {
|
||||
<TouchableOpacity
|
||||
onPress={() =>
|
||||
setColorSwatchesFavorites([
|
||||
...colorSwatchesFavorites,
|
||||
selectedColorPickerColor.value,
|
||||
]);
|
||||
])
|
||||
}
|
||||
style={{
|
||||
position: "absolute",
|
||||
top: 20,
|
||||
right: 0,
|
||||
}}
|
||||
/>
|
||||
>
|
||||
<MyIcon
|
||||
name="star-outline"
|
||||
color={appContext.appTheme.icon}
|
||||
size={20}
|
||||
/>
|
||||
</TouchableOpacity>
|
||||
|
||||
<View style={{ marginLeft: 30, marginRight: 30 }}>
|
||||
<HueCircular
|
||||
|
|
|
@ -1,31 +1,26 @@
|
|||
import { Text, View } from "react-native";
|
||||
import { View } from "react-native";
|
||||
import Card from "../../Components/Card";
|
||||
import { Incubator, Switch } from "react-native-ui-lib";
|
||||
import { IconButton } from "react-native-paper";
|
||||
import { useState } from "react";
|
||||
import { useContext, useState } from "react";
|
||||
import MySwitch from "../../Components/Switch";
|
||||
import MySlider from "../../Components/Slider";
|
||||
import { AppContext } from "../../utils";
|
||||
import MyIcon from "../../Components/Icon";
|
||||
|
||||
export default function MotorView() {
|
||||
const appContext = useContext(AppContext);
|
||||
const [switchState, setSwitchState] = useState(false);
|
||||
const [sliderValue, setSliderValue] = useState(0);
|
||||
|
||||
return (
|
||||
<Card>
|
||||
<View style={{ flexDirection: "row", alignItems: "center" }}>
|
||||
<Switch value={switchState} onValueChange={(e) => setSwitchState(e)} />
|
||||
<IconButton icon="fan" iconColor={"#fff"} size={20} />
|
||||
<MySwitch
|
||||
value={switchState}
|
||||
onValueChange={(e) => setSwitchState(e)}
|
||||
/>
|
||||
<MyIcon name="fan" color={appContext.appTheme.icon} size={20} />
|
||||
|
||||
<View style={{ flex: 1 }}>
|
||||
<Incubator.Slider
|
||||
value={sliderValue}
|
||||
step={1}
|
||||
initialMinimumValue={0}
|
||||
minimumValue={0}
|
||||
maximumValue={100}
|
||||
onValueChange={(v) => setSliderValue(v)}
|
||||
containerStyle={{
|
||||
flex: 1,
|
||||
marginHorizontal: 8,
|
||||
}}
|
||||
/>
|
||||
<MySlider />
|
||||
</View>
|
||||
</View>
|
||||
</Card>
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
import { Text, View } from "react-native";
|
||||
import Card from "../../Components/Card";
|
||||
import { Incubator, Switch } from "react-native-ui-lib";
|
||||
import { useContext, useState } from "react";
|
||||
import { AppContext, AppStyles } from "../../utils";
|
||||
import { Divider } from "../../Components/Divider";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import MySwitch from "../../Components/Switch";
|
||||
|
||||
export default function SettingsView() {
|
||||
const appContext = useContext(AppContext);
|
||||
|
@ -36,14 +36,24 @@ export default function SettingsView() {
|
|||
}}
|
||||
>
|
||||
<View style={{ width: "80%" }}>
|
||||
<Text style={[AppStyles.typography16, { color: "#fff" }]}>
|
||||
<Text
|
||||
style={[
|
||||
AppStyles.typography16,
|
||||
{ color: appContext.appTheme.text },
|
||||
]}
|
||||
>
|
||||
{t("screens.device.settings.wifiStandByTitle")}
|
||||
</Text>
|
||||
<Text style={[AppStyles.typography14, { color: "#ddd" }]}>
|
||||
<Text
|
||||
style={[
|
||||
AppStyles.typography14,
|
||||
{ color: appContext.appTheme.textSecondary },
|
||||
]}
|
||||
>
|
||||
{t("screens.device.settings.wifiStandByDescription")}
|
||||
</Text>
|
||||
</View>
|
||||
<Switch
|
||||
<MySwitch
|
||||
value={switchState}
|
||||
onValueChange={(e) => setSwitchState(e)}
|
||||
/>
|
||||
|
@ -55,29 +65,58 @@ export default function SettingsView() {
|
|||
style={[
|
||||
AppStyles.typography20,
|
||||
{
|
||||
color: "#fff",
|
||||
color: appContext.appTheme.text,
|
||||
marginBottom: 10,
|
||||
},
|
||||
]}
|
||||
>
|
||||
{t("screens.device.settings.deviceInformationTitle")}
|
||||
</Text>
|
||||
<Text style={([AppStyles.typography16], { color: "#fff" })}>
|
||||
<Text
|
||||
style={
|
||||
([AppStyles.typography16], { color: appContext.appTheme.text })
|
||||
}
|
||||
>
|
||||
{t("screens.device.settings.deviceModelTitle")}
|
||||
</Text>
|
||||
<Text style={([AppStyles.typography14], { color: "#ddd" })}>
|
||||
<Text
|
||||
style={
|
||||
([AppStyles.typography14],
|
||||
{ color: appContext.appTheme.textSecondary })
|
||||
}
|
||||
>
|
||||
Shimmex Aurora
|
||||
</Text>
|
||||
<Divider />
|
||||
<Text style={([AppStyles.typography16], { color: "#fff" })}>
|
||||
<Text
|
||||
style={
|
||||
([AppStyles.typography16], { color: appContext.appTheme.text })
|
||||
}
|
||||
>
|
||||
{t("screens.device.settings.deviceFirmwareVersionTitle")}
|
||||
</Text>
|
||||
<Text style={([AppStyles.typography14], { color: "#ddd" })}>1.0.1</Text>
|
||||
<Divider />
|
||||
<Text style={([AppStyles.typography16], { color: "#fff" })}>
|
||||
{t("screens.device.settings.deviceLastUpdated")}
|
||||
<Text
|
||||
style={
|
||||
([AppStyles.typography14],
|
||||
{ color: appContext.appTheme.textSecondary })
|
||||
}
|
||||
>
|
||||
1.0.1
|
||||
</Text>
|
||||
<Text style={([AppStyles.typography14], { color: "#ddd" })}>
|
||||
<Divider />
|
||||
<Text
|
||||
style={
|
||||
([AppStyles.typography16], { color: appContext.appTheme.text })
|
||||
}
|
||||
>
|
||||
{t("screens.device.settings.deviceLastUpdatedTitle")}
|
||||
</Text>
|
||||
<Text
|
||||
style={
|
||||
([AppStyles.typography14],
|
||||
{ color: appContext.appTheme.textSecondary })
|
||||
}
|
||||
>
|
||||
11.07.2023 um 20:33 Uhr
|
||||
</Text>
|
||||
</Card>
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
import { useContext, useState } from "react";
|
||||
import { Modal, Text, TouchableOpacity, View } from "react-native";
|
||||
import { Picker, Switch } from "react-native-ui-lib";
|
||||
import { Text, TouchableOpacity, View } from "react-native";
|
||||
import Card from "../../Components/Card";
|
||||
import { AppContext, AppStyles, Constants } from "../../utils";
|
||||
import { Divider } from "../../Components/Divider";
|
||||
import PickerModal from "../../Components/PickerModal";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import MySwitch from "../../Components/Switch";
|
||||
|
||||
export default function SettingsScreen() {
|
||||
const appContext = useContext(AppContext);
|
||||
|
@ -115,7 +115,7 @@ export default function SettingsScreen() {
|
|||
{t("screens.settings.expertModeDescription")}
|
||||
</Text>
|
||||
</View>
|
||||
<Switch
|
||||
<MySwitch
|
||||
value={appContext.isUserExpertModeEnabled}
|
||||
onValueChange={(e) => appContext.setIsUserExpertModeEnabled(e)}
|
||||
/>
|
||||
|
@ -133,7 +133,7 @@ export default function SettingsScreen() {
|
|||
<Text style={{ color: appContext.appTheme.text }}>
|
||||
Developer Mode
|
||||
</Text>
|
||||
<Switch
|
||||
<MySwitch
|
||||
value={appContext.isUserDeveloperModeEnabled}
|
||||
onValueChange={(e) => appContext.setUserIsDeveloperModeEnabled(e)}
|
||||
/>
|
||||
|
|
26
src/utils.js
26
src/utils.js
|
@ -54,8 +54,20 @@ const DarkAppTheme = {
|
|||
activeBackgroundColor: "rgba(0, 0, 0, 0.1)",
|
||||
},
|
||||
},
|
||||
divider: "#ddd",
|
||||
divider: "#888",
|
||||
icon: "#ddd",
|
||||
switch: {
|
||||
trackColorTrue: "#b2b3b3",
|
||||
trackColorFalse: "#b2b3b3",
|
||||
thumbColorTrue: "#e67e22",
|
||||
thumbColorFalse: "#f4f3f4",
|
||||
ios_backgroundColor: "#3e3e3e",
|
||||
},
|
||||
slider: {
|
||||
minimumTrackTintColor: "#e67e22",
|
||||
maximumTrackTintColor: "#fff",
|
||||
thumbTintColor: "#e67e22",
|
||||
},
|
||||
};
|
||||
|
||||
const LightAppTheme = {
|
||||
|
@ -80,6 +92,18 @@ const LightAppTheme = {
|
|||
},
|
||||
divider: "#ddd",
|
||||
icon: "#000",
|
||||
switch: {
|
||||
trackColorTrue: "#b2b3b3",
|
||||
trackColorFalse: "#b2b3b3",
|
||||
thumbColorTrue: "#e67e22",
|
||||
thumbColorFalse: "#f4f3f4",
|
||||
ios_backgroundColor: "#3e3e3e",
|
||||
},
|
||||
slider: {
|
||||
minimumTrackTintColor: "#e67e22",
|
||||
maximumTrackTintColor: "#555",
|
||||
thumbTintColor: "#e67e22",
|
||||
},
|
||||
};
|
||||
|
||||
export async function StoreData(key, value) {
|
||||
|
|
Loading…
Reference in New Issue