diff --git a/android/app/src/main/res/drawable/check.xml b/android/app/src/main/res/drawable/check.xml new file mode 100644 index 00000000..4241129c --- /dev/null +++ b/android/app/src/main/res/drawable/check.xml @@ -0,0 +1,11 @@ + + + + diff --git a/bun.lockb b/bun.lockb index dfd4fd48..dee33e0f 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 5258dcbc..e01598d1 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -318,11 +318,11 @@ PODS: - hermes-engine (0.76.5): - hermes-engine/Pre-built (= 0.76.5) - hermes-engine/Pre-built (0.76.5) - - maplibre-react-native (10.0.0-beta.11): - - maplibre-react-native/DynamicLibrary (= 10.0.0-beta.11) + - maplibre-react-native (10.0.0-beta.13): + - maplibre-react-native/DynamicLibrary (= 10.0.0-beta.13) - React - React-Core - - maplibre-react-native/DynamicLibrary (10.0.0-beta.11): + - maplibre-react-native/DynamicLibrary (10.0.0-beta.13): - React - React-Core - RCT-Folly (2024.01.01.00): @@ -2788,7 +2788,7 @@ SPEC CHECKSUMS: fmt: 10c6e61f4be25dc963c36bd73fc7b1705fe975be glog: 08b301085f15bcbb6ff8632a8ebaf239aae04e6a hermes-engine: 06a9c6900587420b90accc394199527c64259db4 - maplibre-react-native: e0b56ed1bc9d8c895e5999ba5ee03268f5b734bf + maplibre-react-native: fd8dd338959f3bb5038ce85d21eb60498176a8da RCT-Folly: bf5c0376ffe4dd2cf438dcf86db385df9fdce648 RCTDeprecation: fb7d408617e25d7f537940000d766d60149c5fea RCTRequired: 9aaf0ffcc1f41f0c671af863970ef25c422a9920 diff --git a/package.json b/package.json index d4cfaea5..d5988c8a 100644 --- a/package.json +++ b/package.json @@ -33,16 +33,16 @@ "@gorhom/bottom-sheet": "^5.0.6", "@howljs/calendar-kit": "^2.2.1", "@kichiyaki/react-native-barcode-generator": "^0.6.7", - "@maplibre/maplibre-react-native": "^10.0.0-beta.11", + "@maplibre/maplibre-react-native": "^10.0.0-beta.13", "@react-native-community/datetimepicker": "8.2.0", "@react-native-community/netinfo": "11.4.1", "@react-native-menu/menu": "^1.1.7", "@react-navigation/native": "^7.0.14", "@react-navigation/stack": "^7.1.1", "@shopify/flash-list": "1.7.1", - "@tanstack/query-sync-storage-persister": "^5.62.8", - "@tanstack/react-query": "^5.62.8", - "@tanstack/react-query-persist-client": "^5.62.8", + "@tanstack/query-sync-storage-persister": "^5.62.9", + "@tanstack/react-query": "^5.62.9", + "@tanstack/react-query-persist-client": "^5.62.9", "@th3rdwave/react-navigation-bottom-sheet": "0.3.2", "burnt": "^0.12.2", "color": "^4.2.3", @@ -129,8 +129,8 @@ "@types/prop-types": "^15.7.14", "@types/react": "~18.3.18", "@types/sanitize-html": "^2.13.0", - "@typescript-eslint/eslint-plugin": "^8.18.1", - "@typescript-eslint/parser": "^8.18.1", + "@typescript-eslint/eslint-plugin": "^8.18.2", + "@typescript-eslint/parser": "^8.18.2", "ajv": "^8.17.1", "babel-plugin-formatjs": "^10.5.29", "babel-plugin-transform-inline-environment-variables": "^0.4.4", diff --git a/src/components/Menu/DropdownMenuCheckIcon.tsx b/src/components/Menu/DropdownMenuCheckIcon.tsx deleted file mode 100644 index e25a18f0..00000000 --- a/src/components/Menu/DropdownMenuCheckIcon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { Check } from 'lucide-react-native' -import React from 'react' -import { StyleSheet } from 'react-native' -import * as DropdownMenu from 'zeego/dropdown-menu' - -type ItemProps = React.ComponentProps<(typeof DropdownMenu)['ItemIcon']> - -const DropdownMenuCheckIcon = DropdownMenu.create((props: ItemProps) => { - return ( - - - - ) -}, 'ItemIcon') - -const styles = StyleSheet.create({ - // eslint-disable-next-line react-native/no-color-literals - check: { - color: 'white', - }, -}) -export default DropdownMenuCheckIcon diff --git a/src/components/Menu/DropdownMenuTrigger.tsx b/src/components/Menu/DropdownMenuTrigger.tsx index 40de9220..02f226cd 100644 --- a/src/components/Menu/DropdownMenuTrigger.tsx +++ b/src/components/Menu/DropdownMenuTrigger.tsx @@ -20,7 +20,8 @@ const stylesheet = createStyleSheet((theme) => ({ borderWidth: 0, fontSize: 18, outlineStyle: 'none', - paddingLeft: Platform.OS === 'web' ? 14 : 0, + paddingLeft: + Platform.OS === 'web' ? 14 : Platform.OS === 'android' ? 10 : 0, paddingVertical: 10, }, })) diff --git a/src/components/Timetable/Menu.web.tsx b/src/components/Timetable/Menu.ios.tsx similarity index 64% rename from src/components/Timetable/Menu.web.tsx rename to src/components/Timetable/Menu.ios.tsx index d17ef587..e5e5f1ea 100644 --- a/src/components/Timetable/Menu.web.tsx +++ b/src/components/Timetable/Menu.ios.tsx @@ -4,9 +4,7 @@ import { useTranslation } from 'react-i18next' import { createStyleSheet, useStyles } from 'react-native-unistyles' import * as DropdownMenu from 'zeego/dropdown-menu' -import DropdownMenuCheckIcon from '../Menu/DropdownMenuCheckIcon' import DropdownMenuContent from '../Menu/DropdownMenuContent' -import DropdownMenuItem from '../Menu/DropdownMenuItem' import DropdownMenuSeparator from '../Menu/DropdownMenuItemSeparator' import DropdownMenuItemTitle from '../Menu/DropdownMenuItemTitle' import DropdownMenuTrigger from '../Menu/DropdownMenuTrigger' @@ -25,7 +23,7 @@ export function MyMenu() { - { + value={timetableMode === TimetableMode.Timeline1} + onValueChange={() => { setTimetableMode(TimetableMode.Timeline1) }} > {t('menu.oneDay')} - {timetableMode === TimetableMode.Timeline1 && ( - - )} - + + - { + value={timetableMode === TimetableMode.Timeline3} + onValueChange={() => { setTimetableMode(TimetableMode.Timeline3) }} > {t('menu.threeDays')} - {timetableMode === TimetableMode.Timeline3 && ( - - )} - + + - { + value={timetableMode === TimetableMode.Timeline5} + onValueChange={() => { setTimetableMode(TimetableMode.Timeline5) }} > {t('menu.fiveDays')} - {timetableMode === TimetableMode.Timeline5 && ( - - )} - - - + + { + value={timetableMode === TimetableMode.List} + onValueChange={() => { setTimetableMode(TimetableMode.List) }} > {t('menu.list')} - {timetableMode === TimetableMode.List && ( - - )} - + + ) diff --git a/src/components/Timetable/Menu.tsx b/src/components/Timetable/Menu.tsx index 9662821f..5c895aa8 100644 --- a/src/components/Timetable/Menu.tsx +++ b/src/components/Timetable/Menu.tsx @@ -1,4 +1,5 @@ import { TimetableMode, usePreferencesStore } from '@/hooks/usePreferencesStore' +import { Check } from 'lucide-react-native' import React from 'react' import { useTranslation } from 'react-i18next' import { createStyleSheet, useStyles } from 'react-native-unistyles' @@ -8,7 +9,6 @@ import DropdownMenuContent from '../Menu/DropdownMenuContent' import DropdownMenuItem from '../Menu/DropdownMenuItem' import DropdownMenuSeparator from '../Menu/DropdownMenuItemSeparator' import DropdownMenuItemTitle from '../Menu/DropdownMenuItemTitle' -import DropdownMenuSubContent from '../Menu/DropdownMenuSubContent' import DropdownMenuTrigger from '../Menu/DropdownMenuTrigger' import PlatformIcon from '../Universal/Icon' @@ -30,7 +30,7 @@ export function MyMenu() { }} android={{ name: 'calendar_month', - size: 20, + size: 22, }} web={{ name: 'Calendar', @@ -40,68 +40,63 @@ export function MyMenu() { /> - - - {t('menu.timeline')} - - - - { - setTimetableMode(TimetableMode.Timeline1) - }} + { + setTimetableMode(TimetableMode.Timeline1) + }} + > + + {t('menu.oneDay')} + + {timetableMode === TimetableMode.Timeline1 && ( + - - {t('menu.oneDay')} - - {timetableMode === TimetableMode.Timeline1 && ( - - )} - - - { - setTimetableMode(TimetableMode.Timeline3) - }} + + + )} + + + { + setTimetableMode(TimetableMode.Timeline3) + }} + > + + {t('menu.threeDays')} + + {timetableMode === TimetableMode.Timeline3 && ( + - - {t('menu.threeDays')} - - {timetableMode === TimetableMode.Timeline3 && ( - - )} - - - { - setTimetableMode(TimetableMode.Timeline5) - }} + + + )} + + + { + setTimetableMode(TimetableMode.Timeline5) + }} + > + + {t('menu.fiveDays')} + + {timetableMode === TimetableMode.Timeline5 && ( + - - {t('menu.fiveDays')} - - {timetableMode === TimetableMode.Timeline5 && ( - - )} - - - - + + + )} + + { @@ -113,10 +108,11 @@ export function MyMenu() { {timetableMode === TimetableMode.List && ( + androidIconName="check" + style={styles.check} + > + + )} @@ -125,6 +121,9 @@ export function MyMenu() { } const stylesheet = createStyleSheet((theme) => ({ + check: { + color: theme.colors.labelColor, + }, trigger: { color: theme.colors.text, }, diff --git a/src/components/Timetable/TimetableScreen.tsx b/src/components/Timetable/TimetableScreen.tsx index 211f459d..c7d0f282 100644 --- a/src/components/Timetable/TimetableScreen.tsx +++ b/src/components/Timetable/TimetableScreen.tsx @@ -77,7 +77,6 @@ function TimetableScreen(): React.JSX.Element { ) } - console.warn('timetableMode', timetableMode) return ( diff --git a/src/components/Timetable/WeekEventComponent.tsx b/src/components/Timetable/WeekEventComponent.tsx index cd2cdd1b..08a6c198 100644 --- a/src/components/Timetable/WeekEventComponent.tsx +++ b/src/components/Timetable/WeekEventComponent.tsx @@ -92,7 +92,7 @@ const EventComponent = ({ backgroundColor: background, }} > - {isIOS && isExam ? : } + {isIOS && (isExam ? : )}