gitshark

Clone repository

git clone https://git.vilip.de/git/vilip/taskflow.git
git clone git@git.vilip.de:vilip/taskflow.git

← Commits

๐Ÿ› Fix route bug

9c8cd65f923faa7d59292689aed726a4491af114 ยท vvilip ยท 2025-11-17T20:57:13Z

Changes

6 files changed, +145 -42

DELETE app/(tabs)/_layout.swipe.tsx +0 -0
diff --git "a/app/\050tabs\051/_layout.swipe.tsx" "b/app/\050tabs\051/_layout.swipe.tsx"
deleted file mode 100644
index e69de29..0000000
--- "a/app/\050tabs\051/_layout.swipe.tsx"
+++ /dev/null
MODIFY app/(tabs)/_layout.tsx +64 -35
diff --git "a/app/\050tabs\051/_layout.tsx" "b/app/\050tabs\051/_layout.tsx"
index 5bf2851..c44ee9f 100644
--- "a/app/\050tabs\051/_layout.tsx"
+++ "b/app/\050tabs\051/_layout.tsx"
@@ -1,41 +1,70 @@
1 -import React, { useState } from 'react';
2 -import { Dimensions } from 'react-native';
3 -import { TabView, SceneMap } from 'react-native-tab-view';
4 -import InboxScreen from './index';
5 -import TodayScreen from './today';
6 -import CalendarScreen from './calendar';
7 -import ProjectsScreen from './projects';
8 -import SettingsScreen from './settings';
9 -import { SwipeableTabBar } from '@/components/swipeable-tab-bar';
10 -
11 -const renderScene = SceneMap({
12 - inbox: InboxScreen,
13 - today: TodayScreen,
14 - calendar: CalendarScreen,
15 - projects: ProjectsScreen,
16 - settings: SettingsScreen,
17 -});
1 +import { Tabs } from 'expo-router';
2 +import { Ionicons } from '@expo/vector-icons';
3 +import { useColorScheme } from '@/hooks/use-color-scheme';
4 +import { Colors } from '@/constants/theme';
18 5
19 6 export default function TabLayout() {
20 - const [index, setIndex] = useState(0);
21 - const [routes] = useState([
22 - { key: 'inbox', title: 'Inbox' },
23 - { key: 'today', title: 'Today' },
24 - { key: 'calendar', title: 'Calendar' },
25 - { key: 'projects', title: 'Projects' },
26 - { key: 'settings', title: 'Settings' },
27 - ]);
28 -
29 - const initialLayout = { width: Dimensions.get('window').width };
7 + const colorScheme = useColorScheme();
8 + const colors = Colors[colorScheme];
30 9
31 10 return (
32 - <TabView
33 - navigationState={{ index, routes }}
34 - renderScene={renderScene}
35 - onIndexChange={setIndex}
36 - initialLayout={initialLayout}
37 - tabBarPosition="bottom"
38 - renderTabBar={props => <SwipeableTabBar {...props} />}
39 - />
11 + <Tabs
12 + screenOptions={{
13 + headerShown: false,
14 + tabBarActiveTintColor: colors.tint,
15 + tabBarInactiveTintColor: colors.tabIconDefault,
16 + tabBarStyle: {
17 + backgroundColor: colors.background,
18 + borderTopColor: colors.border,
19 + borderTopWidth: 1,
20 + },
21 + }}
22 + >
23 + <Tabs.Screen
24 + name="index"
25 + options={{
26 + title: 'Inbox',
27 + tabBarIcon: ({ color, focused }) => (
28 + <Ionicons name={focused ? 'mail' : 'mail-outline'} size={24} color={color} />
29 + ),
30 + }}
31 + />
32 + <Tabs.Screen
33 + name="today"
34 + options={{
35 + title: 'Today',
36 + tabBarIcon: ({ color, focused }) => (
37 + <Ionicons name={focused ? 'today' : 'today-outline'} size={24} color={color} />
38 + ),
39 + }}
40 + />
41 + <Tabs.Screen
42 + name="calendar"
43 + options={{
44 + title: 'Calendar',
45 + tabBarIcon: ({ color, focused }) => (
46 + <Ionicons name={focused ? 'calendar' : 'calendar-outline'} size={24} color={color} />
47 + ),
48 + }}
49 + />
50 + <Tabs.Screen
51 + name="projects"
52 + options={{
53 + title: 'Projects',
54 + tabBarIcon: ({ color, focused }) => (
55 + <Ionicons name={focused ? 'folder' : 'folder-outline'} size={24} color={color} />
56 + ),
57 + }}
58 + />
59 + <Tabs.Screen
60 + name="settings"
61 + options={{
62 + title: 'Settings',
63 + tabBarIcon: ({ color, focused }) => (
64 + <Ionicons name={focused ? 'settings' : 'settings-outline'} size={24} color={color} />
65 + ),
66 + }}
67 + />
68 + </Tabs>
40 69 );
41 70 }
\ No newline at end of file
MODIFY app/_layout.tsx +1 -2
diff --git a/app/_layout.tsx b/app/_layout.tsx
index ae74d48..6745fc7 100644
--- a/app/_layout.tsx
+++ b/app/_layout.tsx
@@ -13,8 +13,7 @@
13 13
14 14 return (
15 15 <NavigationThemeProvider value={colorScheme === 'dark' ? DarkTheme : DefaultTheme}>
16 - <Stack screenOptions={{ headerShown: false }} initialRouteName="index">
17 - <Stack.Screen name="index" options={{ headerShown: false }} />
16 + <Stack screenOptions={{ headerShown: false }}>
18 17 <Stack.Screen name="(tabs)" options={{ headerShown: false }} />
19 18 <Stack.Screen name="project/[id]" options={{ headerShown: false }} />
20 19 <Stack.Screen name="archive" options={{ headerShown: false }} />
DELETE app/index.tsx +0 -5
diff --git a/app/index.tsx b/app/index.tsx
deleted file mode 100644
index 3861ed0..0000000
--- a/app/index.tsx
+++ /dev/null
@@ -1,5 +0,0 @@
1 -import { Redirect } from 'expo-router';
2 -
3 -export default function Index() {
4 - return <Redirect href="/(tabs)" />;
5 -}
MODIFY package-lock.json +79 -0
diff --git a/package-lock.json b/package-lock.json
index 4faa968..c8d0f57 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -16,6 +16,7 @@
16 16 "@react-navigation/native": "^7.1.8",
17 17 "expo": "^54.0.23",
18 18 "expo-constants": "~18.0.10",
19 + "expo-dev-client": "~6.0.17",
19 20 "expo-document-picker": "^14.0.7",
20 21 "expo-file-system": "^19.0.17",
21 22 "expo-font": "~14.0.9",
@@ -6387,6 +6388,56 @@
6387 6388 "react-native": "*"
6388 6389 }
6389 6390 },
6391 + "node_modules/expo-dev-client": {
6392 + "version": "6.0.17",
6393 + "resolved": "https://registry.npmjs.org/expo-dev-client/-/expo-dev-client-6.0.17.tgz",
6394 + "integrity": "sha512-zVilIum3sqXFbhYhPT6TuxR3ddH/IfHL82FiOTqJUiYaTQqun1I6ogSvU1djhY1eXUYhfYIBieQNWMVjXPxMvw==",
6395 + "license": "MIT",
6396 + "dependencies": {
6397 + "expo-dev-launcher": "6.0.17",
6398 + "expo-dev-menu": "7.0.16",
6399 + "expo-dev-menu-interface": "2.0.0",
6400 + "expo-manifests": "~1.0.8",
6401 + "expo-updates-interface": "~2.0.0"
6402 + },
6403 + "peerDependencies": {
6404 + "expo": "*"
6405 + }
6406 + },
6407 + "node_modules/expo-dev-launcher": {
6408 + "version": "6.0.17",
6409 + "resolved": "https://registry.npmjs.org/expo-dev-launcher/-/expo-dev-launcher-6.0.17.tgz",
6410 + "integrity": "sha512-riLxFXaw6Nvgb27TiQtUvoHkW/zTz0aO7M+qxDBBaEbJMJSFl51KSwOJJBTItVQIE9f9jB8x5L1CfLw81/McZw==",
6411 + "license": "MIT",
6412 + "dependencies": {
6413 + "expo-dev-menu": "7.0.16",
6414 + "expo-manifests": "~1.0.8"
6415 + },
6416 + "peerDependencies": {
6417 + "expo": "*"
6418 + }
6419 + },
6420 + "node_modules/expo-dev-menu": {
6421 + "version": "7.0.16",
6422 + "resolved": "https://registry.npmjs.org/expo-dev-menu/-/expo-dev-menu-7.0.16.tgz",
6423 + "integrity": "sha512-/kjTjk5tcZV0ixYnV3JyzPXKlMimpBNYaDo4XxBbRFIkTf/vmb/9e1BTR2nALnoa/D3MRwtR43gZYT+W/wfKXw==",
6424 + "license": "MIT",
6425 + "dependencies": {
6426 + "expo-dev-menu-interface": "2.0.0"
6427 + },
6428 + "peerDependencies": {
6429 + "expo": "*"
6430 + }
6431 + },
6432 + "node_modules/expo-dev-menu-interface": {
6433 + "version": "2.0.0",
6434 + "resolved": "https://registry.npmjs.org/expo-dev-menu-interface/-/expo-dev-menu-interface-2.0.0.tgz",
6435 + "integrity": "sha512-BvAMPt6x+vyXpThsyjjOYyjwfjREV4OOpQkZ0tNl+nGpsPfcY9mc6DRACoWnH9KpLzyIt3BOgh3cuy/h/OxQjw==",
6436 + "license": "MIT",
6437 + "peerDependencies": {
6438 + "expo": "*"
6439 + }
6440 + },
6390 6441 "node_modules/expo-document-picker": {
6391 6442 "version": "14.0.7",
6392 6443 "resolved": "https://registry.npmjs.org/expo-document-picker/-/expo-document-picker-14.0.7.tgz",
@@ -6447,6 +6498,12 @@
6447 6498 }
6448 6499 }
6449 6500 },
6501 + "node_modules/expo-json-utils": {
6502 + "version": "0.15.0",
6503 + "resolved": "https://registry.npmjs.org/expo-json-utils/-/expo-json-utils-0.15.0.tgz",
6504 + "integrity": "sha512-duRT6oGl80IDzH2LD2yEFWNwGIC2WkozsB6HF3cDYNoNNdUvFk6uN3YiwsTsqVM/D0z6LEAQ01/SlYvN+Fw0JQ==",
6505 + "license": "MIT"
6506 + },
6450 6507 "node_modules/expo-keep-awake": {
6451 6508 "version": "15.0.7",
6452 6509 "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-15.0.7.tgz",
@@ -6472,6 +6529,19 @@
6472 6529 "react-native": "*"
6473 6530 }
6474 6531 },
6532 + "node_modules/expo-manifests": {
6533 + "version": "1.0.8",
6534 + "resolved": "https://registry.npmjs.org/expo-manifests/-/expo-manifests-1.0.8.tgz",
6535 + "integrity": "sha512-nA5PwU2uiUd+2nkDWf9e71AuFAtbrb330g/ecvuu52bmaXtN8J8oiilc9BDvAX0gg2fbtOaZdEdjBYopt1jdlQ==",
6536 + "license": "MIT",
6537 + "dependencies": {
6538 + "@expo/config": "~12.0.8",
6539 + "expo-json-utils": "~0.15.0"
6540 + },
6541 + "peerDependencies": {
6542 + "expo": "*"
6543 + }
6544 + },
6475 6545 "node_modules/expo-modules-autolinking": {
6476 6546 "version": "3.0.21",
6477 6547 "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-3.0.21.tgz",
@@ -6850,6 +6920,15 @@
6850 6920 }
6851 6921 }
6852 6922 },
6923 + "node_modules/expo-updates-interface": {
6924 + "version": "2.0.0",
6925 + "resolved": "https://registry.npmjs.org/expo-updates-interface/-/expo-updates-interface-2.0.0.tgz",
6926 + "integrity": "sha512-pTzAIufEZdVPKql6iMi5ylVSPqV1qbEopz9G6TSECQmnNde2nwq42PxdFBaUEd8IZJ/fdJLQnOT3m6+XJ5s7jg==",
6927 + "license": "MIT",
6928 + "peerDependencies": {
6929 + "expo": "*"
6930 + }
6931 + },
6853 6932 "node_modules/expo-web-browser": {
6854 6933 "version": "15.0.9",
6855 6934 "resolved": "https://registry.npmjs.org/expo-web-browser/-/expo-web-browser-15.0.9.tgz",
MODIFY package.json +1 -0
diff --git a/package.json b/package.json
index 685eff9..682eae0 100644
--- a/package.json
+++ b/package.json
@@ -19,6 +19,7 @@
19 19 "@react-navigation/native": "^7.1.8",
20 20 "expo": "^54.0.23",
21 21 "expo-constants": "~18.0.10",
22 + "expo-dev-client": "~6.0.17",
22 23 "expo-document-picker": "^14.0.7",
23 24 "expo-file-system": "^19.0.17",
24 25 "expo-font": "~14.0.9",

Keyboard shortcuts

?Show this help
g hGo home
EscClose dialog