import React, { useState } from ‘react’;
import { View, Text, TextInput, TouchableOpacity, StyleSheet, Alert, FlatList, SafeAreaView } from ‘react-native’;
import { NavigationContainer } from ‘@react-navigation/native’;
import { createStackNavigator } from ‘@react-navigation/stack’;

const Stack = createStackNavigator();

const App = () => {
  return (
    <NavigationContainer>
      <Stack.Navigator initialRouteName=“Home”>
        <Stack.Screen name=“Home” component={HomeScreen} />
        <Stack.Screen name=“History” component={HistoryScreen} />
      </Stack.Navigator>
    </NavigationContainer>
  );
};

const HomeScreen = ({ navigation }) => {
  const [cisloPolozky, setCisloPolozky] = useState(‘’);
  const [pocetVKartonu, setPocetVKartonu] = useState(‘’);
  const [pocetNaPaletu, setPocetNaPaletu] = useState(‘’);
  const [celkovyPocetKusu, setCelkovyPocetKusu] = useState(‘’);
  const [output, setOutput] = useState(null);
  const [focusedInput, setFocusedInput] = useState(null);

  // Zde přidejte kód pro uložení historie, např. AsyncStorage nebo localStorage

  const handleSubmit = () => {
    const parsedCisloPolozky = parseInt(cisloPolozky);
    const parsedPocetVKartonu = parseInt(pocetVKartonu);
    const parsedPocetNaPaletu = parseInt(pocetNaPaletu);
    const parsedCelkovyPocetKusu = parseInt(celkovyPocetKusu);

    if (
      isNaN(parsedCisloPolozky) ||
      isNaN(parsedPocetVKartonu) ||
      isNaN(parsedCelkovyPocetKusu) ||
      (parsedPocetNaPaletu && parsedPocetNaPaletu % parsedPocetVKartonu !== 0)
    ) {
      Alert.alert(
        ‘Chyba’,
        ‘Zadejte platné číselné hodnoty a ujistěte se, že počet kusů na paletu je dělitelný počtem kusů v jednom kartonu.’
      );
      return;
    }

    const result = vypocetPaletAKartonu(parsedCisloPolozky, parsedPocetVKartonu, parsedPocetNaPaletu, parsedCelkovyPocetKusu);
    setOutput(result);

    // Přidejte výpočet do historie
    // Načtěte historii z úložiště, přidejte nový výpočet a uložte zpět
  };

  const vypocetPaletAKartonu = (cislo_polozky, pocet_v_kartonu, pocet_na_paletu, celkovy_pocet_kusu) => {
    // Kód pro vypočítání palet a kartonů

    // Návratový objekt:
    return {
      cisloPolozky: cislo_polozky,
      pocetVKartonu: pocet_v_kartonu,
      pocetNaPaletu: pocet_na_paletu,
      // Zbytek výpočtu…
    };
  };

  const sklonovani = (cislo, slovo) => {
    // Kód pro sklonování
  };

  return (
    <View style={styles.container}>
      {/* Kód pro vstupní pole, navigaci apod. */}
      <TouchableOpacity style={styles.historyButton} onPress={() => navigation.navigate(‘History’)}>
        <Text style={styles.historyButtonText}>Historie</Text>
      </TouchableOpacity>
    </View>
  );
};

const HistoryScreen = () => {
  const [history, setHistory] = useState([]); // Přidejte kód pro načítání dat z úložiště

  const showItemDetail = (itemId) => {
    // Kód pro zobrazení detailu položky
  };

  return (
    <SafeAreaView style={styles.container}>
      {history.length === 0 && <Text>Zatím neexistuje žádná historie.</Text>}
      <FlatList
        data={history}
        renderItem={({ item }) => (
          <TouchableOpacity onPress={() => showItemDetail(item.cisloPolozky)}>
            <Text>{item.cisloPolozky}</Text>
          </TouchableOpacity>
        )}
        keyExtractor={(item) => item.cisloPolozky.toString()}
      />
    </SafeAreaView>
  );
};

const styles = StyleSheet.create({
  // Vaše stávající styly
  historyButton: {
    marginTop: 10,
    padding: 10,
    borderRadius: 4,
    backgroundColor: ‘#2196f3’,
  },
  historyButtonText: {
    fontSize: 18,
    color: ‘#ffffff’,
    textAlign: ‘center’,
  },
});

export default App;

1) Přidat modré tlačítko historie na hlavní obrazovku uplně dolů pod výsledek, které by přešlo na obrazovku s historií výpočtů.

2) Přidat obrazovku s historií výpočtů, kde by se zobrazovala tabulka nebo seznam s čísly položek. Po kliknutí na nějaké číslo by se zobrazil detail o výpočtu té položky.

3) Přidat možnost filtrovat, řadit, mazat nebo upravovat uložené výpočty na obrazovce s historií.

4) Přidat lupu pro vyhledávání v historii podle čísla položky nebo jiných kritérií.

Pokud rozumíš mým požadavkům, uprav kód kompletně a plně funkční mi ho pošli ve více částech v bloku kódu, tak aby končil s export default App;