This commit is contained in:
Tomas Dvorak
2026-02-24 10:33:08 +01:00
parent b083dac3f0
commit 55d0284b2a
90 changed files with 27855 additions and 1940 deletions
@@ -1,5 +1,4 @@
import React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
import { useAuth } from '../services/AuthContext';
import { useServerConfig } from '../services/ServerConfigContext';
@@ -1,6 +1,5 @@
import React from 'react';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
import Icon from 'react-native-vector-icons/MaterialCommunityIcons';
import { useOffline } from '../services/OfflineContext';
import { useTheme } from 'react-native-paper';
@@ -28,13 +27,9 @@ export type MainTabParamList = {
const Tab = createBottomTabNavigator<MainTabParamList>();
const TabNavigator: React.FC = () => {
const { isOnline, pendingChanges } = useOffline();
const { pendingChanges } = useOffline();
const theme = useTheme();
const getTabBarIcon = (name: string, color: string) => (
<Icon name={name} size={24} color={color} />
);
return (
<Tab.Navigator
screenOptions={({ route }) => ({
@@ -8,16 +8,12 @@ import {
} from 'react-native';
import {
Text,
Card,
Title,
Paragraph,
TextInput,
Button,
FAB,
IconButton,
Avatar,
Chip,
Divider,
} from 'react-native-paper';
import AsyncStorage from '@react-native-async-storage/async-storage';
import { useRealtimeUpdates } from '../services/RealtimeSyncContext';
@@ -7,19 +7,16 @@ import {
Alert,
} from 'react-native';
import {
Text,
Card,
Title,
Paragraph,
TextInput,
Button,
ActivityIndicator,
HelperText,
} from 'react-native-paper';
import { SafeAreaView } from 'react-native-safe-area-context';
import { useServerConfig } from '../services/ServerConfigContext';
import { updateAPIBaseURL } from '../services/api';
import { useNavigation } from '@react-navigation/native';
interface ServerConfig {
baseUrl: string;
@@ -37,7 +34,6 @@ const ServerSetupScreen: React.FC = () => {
const [errors, setErrors] = useState<Partial<ServerConfig>>({});
const { setConfig: saveConfig } = useServerConfig();
const navigation = useNavigation();
const validateConfig = (): boolean => {
const newErrors: Partial<ServerConfig> = {};
@@ -9,7 +9,6 @@ import {
import {
TextInput,
Button,
Text,
Card,
Title,
Paragraph,
@@ -1,6 +1,6 @@
import React, { createContext, useContext, useState, useEffect, ReactNode } from 'react';
import { View, Alert, Platform } from 'react-native';
import { Camera, useCameraDevices } from 'react-native-vision-camera';
import { Alert, Platform } from 'react-native';
import { useCameraDevices } from 'react-native-vision-camera';
import { request, PERMISSIONS, RESULTS } from 'react-native-permissions';
interface CameraContextType {
@@ -1,6 +1,6 @@
import React, { createContext, useContext, useState, useEffect, ReactNode } from 'react';
import PushNotification from 'react-native-push-notification';
import { Platform, PermissionsAndroid, Alert } from 'react-native';
import { Platform, Alert } from 'react-native';
import { request, PERMISSIONS, RESULTS } from 'react-native-permissions';
interface Notification {
@@ -1,5 +1,5 @@
import React, { createContext, useContext, useState, useEffect, ReactNode, useCallback } from 'react';
import { NetInfoState, useNetInfo } from '@react-native-community/netinfo';
import React, { createContext, useContext, useState, useEffect, ReactNode } from 'react';
import { useNetInfo } from '@react-native-community/netinfo';
import AsyncStorage from '@react-native-async-storage/async-storage';
import { useServerConfig } from './ServerConfigContext';
import { DeviceEventEmitter } from 'react-native';
@@ -1,5 +1,5 @@
import React, { createContext, useContext, useState, useEffect, ReactNode } from 'react';
import { Alert, Platform, PermissionsAndroid } from 'react-native';
import { Alert, Platform } from 'react-native';
import { request, PERMISSIONS, RESULTS } from 'react-native-permissions';
import Voice from 'react-native-voice';
-1
View File
@@ -1,7 +1,6 @@
import axios, { AxiosInstance, AxiosRequestConfig } from 'axios';
import { ApiResponse, User, Bookmark, Task, Note, TimeEntry, CalendarEvent, SearchFilters, SavedSearch } from '../types';
import { getStoredAuthData } from '../utils/storage';
import { useServerConfig } from './ServerConfigContext';
let API_BASE_URL = __DEV__
? 'http://localhost:8080/api'
+1 -1
View File
@@ -1,5 +1,5 @@
import { getOfflineData, clearOfflineChanges, addOfflineChange } from './storage';
import { authAPI, bookmarksAPI, tasksAPI, notesAPI, timeEntriesAPI } from '../services/api';
import { bookmarksAPI, tasksAPI, notesAPI, timeEntriesAPI } from '../services/api';
interface OfflineChange {
id: string;