up animals
This commit is contained in:
		
							parent
							
								
									4dd407f068
								
							
						
					
					
						commit
						f42574f0a4
					
				
							
								
								
									
										95
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										95
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@ -15,6 +15,7 @@
 | 
			
		||||
        "@testing-library/react": "^13.4.0",
 | 
			
		||||
        "@testing-library/user-event": "^13.5.0",
 | 
			
		||||
        "framer-motion": "^10.12.16",
 | 
			
		||||
        "hash-router": "^0.4.0",
 | 
			
		||||
        "react": "^18.2.0",
 | 
			
		||||
        "react-dom": "^18.2.0",
 | 
			
		||||
        "react-router-dom": "^6.11.2",
 | 
			
		||||
@ -8089,6 +8090,11 @@
 | 
			
		||||
        "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/dom-walk": {
 | 
			
		||||
      "version": "0.1.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz",
 | 
			
		||||
      "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w=="
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/domelementtype": {
 | 
			
		||||
      "version": "2.3.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
 | 
			
		||||
@ -9530,6 +9536,11 @@
 | 
			
		||||
        "is-callable": "^1.1.3"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/foreach": {
 | 
			
		||||
      "version": "2.0.6",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.6.tgz",
 | 
			
		||||
      "integrity": "sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg=="
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/fork-ts-checker-webpack-plugin": {
 | 
			
		||||
      "version": "6.5.3",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz",
 | 
			
		||||
@ -9956,6 +9967,15 @@
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
 | 
			
		||||
      "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw=="
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/global": {
 | 
			
		||||
      "version": "4.4.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz",
 | 
			
		||||
      "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "min-document": "^2.19.0",
 | 
			
		||||
        "process": "^0.11.10"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/global-modules": {
 | 
			
		||||
      "version": "2.0.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
 | 
			
		||||
@ -10156,6 +10176,16 @@
 | 
			
		||||
        "url": "https://github.com/sponsors/ljharb"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/hash-router": {
 | 
			
		||||
      "version": "0.4.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/hash-router/-/hash-router-0.4.0.tgz",
 | 
			
		||||
      "integrity": "sha512-TWIwsxInId58YR3HeGhwIK/APKc5immhVCc2aPD8j7o368exRmKulcwaF1w6Yd6cnMIBDS7LCz4imfaIeYKTew==",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "global": "^4.2.1",
 | 
			
		||||
        "routes": "~0.2.0",
 | 
			
		||||
        "xtend": "~2.0.6"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/he": {
 | 
			
		||||
      "version": "1.2.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
 | 
			
		||||
@ -10515,6 +10545,11 @@
 | 
			
		||||
        "node": ">=8"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/indexof": {
 | 
			
		||||
      "version": "0.0.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
 | 
			
		||||
      "integrity": "sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg=="
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/inflight": {
 | 
			
		||||
      "version": "1.0.6",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
 | 
			
		||||
@ -10563,6 +10598,14 @@
 | 
			
		||||
        "node": ">= 10"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/is": {
 | 
			
		||||
      "version": "0.2.7",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/is/-/is-0.2.7.tgz",
 | 
			
		||||
      "integrity": "sha512-ajQCouIvkcSnl2iRdK70Jug9mohIHVX9uKpoWnl115ov0R5mzBvRrXxrnHbsA+8AdwCwc/sfw7HXmd4I5EJBdQ==",
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": "*"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/is-arguments": {
 | 
			
		||||
      "version": "1.1.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
 | 
			
		||||
@ -10772,6 +10815,11 @@
 | 
			
		||||
        "node": ">=0.10.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/is-object": {
 | 
			
		||||
      "version": "0.1.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/is-object/-/is-object-0.1.2.tgz",
 | 
			
		||||
      "integrity": "sha512-GkfZZlIZtpkFrqyAXPQSRBMsaHAw+CgoKe2HXAkjd/sfoI9+hS8PT4wg2rJxdQyUKr7N2vHJbg7/jQtE5l5vBQ=="
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/is-path-inside": {
 | 
			
		||||
      "version": "3.0.3",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
 | 
			
		||||
@ -13479,6 +13527,14 @@
 | 
			
		||||
        "node": ">=6"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/min-document": {
 | 
			
		||||
      "version": "2.19.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz",
 | 
			
		||||
      "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "dom-walk": "^0.1.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/min-indent": {
 | 
			
		||||
      "version": "1.0.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
 | 
			
		||||
@ -15497,6 +15553,14 @@
 | 
			
		||||
        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/process": {
 | 
			
		||||
      "version": "0.11.10",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
 | 
			
		||||
      "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": ">= 0.6.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/process-nextick-args": {
 | 
			
		||||
      "version": "2.0.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
 | 
			
		||||
@ -16435,6 +16499,14 @@
 | 
			
		||||
        "node": ">=8"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/routes": {
 | 
			
		||||
      "version": "0.2.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/routes/-/routes-0.2.0.tgz",
 | 
			
		||||
      "integrity": "sha512-Poi9njx/cuUbH75aWW6ImiQGfmZhAK7FFUUfraLIOjRgPw9N7H88L9IsYTxXWxFv9YuPJJr/rtLSzVRh72kCww==",
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": "*"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/run-parallel": {
 | 
			
		||||
      "version": "1.2.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
 | 
			
		||||
@ -18930,6 +19002,29 @@
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
 | 
			
		||||
      "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/xtend": {
 | 
			
		||||
      "version": "2.0.6",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.0.6.tgz",
 | 
			
		||||
      "integrity": "sha512-fOZg4ECOlrMl+A6Msr7EIFcON1L26mb4NY5rurSkOex/TWhazOrg6eXD/B0XkuiYcYhQDWLXzQxLMVJ7LXwokg==",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "is-object": "~0.1.2",
 | 
			
		||||
        "object-keys": "~0.2.0"
 | 
			
		||||
      },
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": ">=0.4"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/xtend/node_modules/object-keys": {
 | 
			
		||||
      "version": "0.2.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.2.0.tgz",
 | 
			
		||||
      "integrity": "sha512-XODjdR2pBh/1qrjPcbSeSgEtKbYo7LqYNq64/TPuCf7j9SfDD3i21yatKoIy39yIWNvVM59iutfQQpCv1RfFzA==",
 | 
			
		||||
      "deprecated": "Please update to the latest object-keys",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "foreach": "~2.0.1",
 | 
			
		||||
        "indexof": "~0.0.1",
 | 
			
		||||
        "is": "~0.2.6"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/y18n": {
 | 
			
		||||
      "version": "5.0.8",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
 | 
			
		||||
 | 
			
		||||
@ -11,6 +11,7 @@
 | 
			
		||||
    "@testing-library/react": "^13.4.0",
 | 
			
		||||
    "@testing-library/user-event": "^13.5.0",
 | 
			
		||||
    "framer-motion": "^10.12.16",
 | 
			
		||||
    "hash-router": "^0.4.0",
 | 
			
		||||
    "react": "^18.2.0",
 | 
			
		||||
    "react-dom": "^18.2.0",
 | 
			
		||||
    "react-router-dom": "^6.11.2",
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,7 @@
 | 
			
		||||
import React from "react";
 | 
			
		||||
import { useState } from "react";
 | 
			
		||||
import { Button } from "./Button";
 | 
			
		||||
import { Input } from "./Input";
 | 
			
		||||
 | 
			
		||||
export const Animal = (props) => {
 | 
			
		||||
  //  const [animal = props.animal, addAnimal] = useState(false);
 | 
			
		||||
@ -18,18 +19,6 @@ export const Animal = (props) => {
 | 
			
		||||
  //if (animal.length === 0) emptyZoo = true;
 | 
			
		||||
  //else emptyZoo = false;
 | 
			
		||||
 | 
			
		||||
  const handleAddAnimal = () => {
 | 
			
		||||
    //const arr = ['zirafa', 'mroz'];
 | 
			
		||||
    //setAnimal(current => [...current, ...arr]);
 | 
			
		||||
    //emptyZoo = false;
 | 
			
		||||
    console.log("pridal jsi...");
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  const handleDeleteAnimal = () => {
 | 
			
		||||
    //emptyZoo = true;
 | 
			
		||||
    console.log("smazal jsi...");
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  return (
 | 
			
		||||
    <nav>
 | 
			
		||||
      <h1>{nadpis}</h1>
 | 
			
		||||
@ -43,10 +32,19 @@ export const Animal = (props) => {
 | 
			
		||||
        </ul>
 | 
			
		||||
      )}
 | 
			
		||||
 | 
			
		||||
      <Button className="primary" isDisabled={emptyZoo} onClick={handleDeleteAnimal}>
 | 
			
		||||
      <Input onChange={props.handleOnChange} value={props.inputValue}></Input>
 | 
			
		||||
 | 
			
		||||
      <Button
 | 
			
		||||
        className="primary"
 | 
			
		||||
        isDisabled={emptyZoo}
 | 
			
		||||
        onClick={props.handleDeleteAnimal}
 | 
			
		||||
      >
 | 
			
		||||
        Delete
 | 
			
		||||
      </Button>
 | 
			
		||||
      <Button className="secondary" onClick={handleAddAnimal}>Add</Button>
 | 
			
		||||
 | 
			
		||||
      <Button className="secondary" onClick={props.handleAddAnimal}>
 | 
			
		||||
        Add
 | 
			
		||||
      </Button>
 | 
			
		||||
    </nav>
 | 
			
		||||
  );
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										59
									
								
								src/App.js
									
									
									
									
									
								
							
							
						
						
									
										59
									
								
								src/App.js
									
									
									
									
									
								
							@ -7,18 +7,67 @@ import Content from "./Content";
 | 
			
		||||
import Footer from "./Footer";
 | 
			
		||||
import { Menu } from "./Menu";
 | 
			
		||||
import { Animal } from "./Animal";
 | 
			
		||||
import { useState } from "react";
 | 
			
		||||
//import { Button } from "./Button";
 | 
			
		||||
//import { Button, ButtonGroup } from "@chakra-ui/react";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function App() {
 | 
			
		||||
  
 | 
			
		||||
  //const animal = [];
 | 
			
		||||
  const animal = ["Lev", "Lachtan", "Varan", "Slon"];
 | 
			
		||||
  
 | 
			
		||||
  //const animal = ["Lev", "Lachtan", "Varan", "Slon"];
 | 
			
		||||
 | 
			
		||||
  const [animal, setAnimal] = useState(["Lev", "Lachtan", "Varan", "Slon"]);
 | 
			
		||||
  const [menu, setMenu] = useState(["Uvod", "O nas", "Kontakt"]);
 | 
			
		||||
  const [newAnimal, setNewAnimal] = useState("");
 | 
			
		||||
 | 
			
		||||
  const handleAddMenu = () => {
 | 
			
		||||
    console.log("pridal jsi menu");
 | 
			
		||||
    setMenu(["Uvod", "O nas", "Kontakt"]);
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  const handleDeleteMenu = () => {
 | 
			
		||||
    console.log("smazal jsi menu");
 | 
			
		||||
    setMenu([]);
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  const handleAddAnimal = () => {
 | 
			
		||||
    //const arr = ['zirafa', 'mroz'];
 | 
			
		||||
    //setAnimal(current => [...current, ...arr]);
 | 
			
		||||
    //emptyZoo = false;
 | 
			
		||||
    //setAnimal(["Lev", "Lachtan", "Varan", "Slon"]);
 | 
			
		||||
    if (newAnimal != "") {
 | 
			
		||||
      setAnimal([...animal, newAnimal]);
 | 
			
		||||
      console.log("pridal jsi...");
 | 
			
		||||
      setNewAnimal("");
 | 
			
		||||
    } else console.log("prazdne pole...");
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  const handleOnChange = (event) => {
 | 
			
		||||
    console.log(event.target.value);
 | 
			
		||||
    setNewAnimal([event.target.value]);
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  const handleDeleteAnimal = () => {
 | 
			
		||||
    //emptyZoo = true;
 | 
			
		||||
    setAnimal([]);
 | 
			
		||||
    console.log("smazal jsi...");
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  return (
 | 
			
		||||
    <>
 | 
			
		||||
      <Animal animal={animal} nadpis="Super ZOO" />
 | 
			
		||||
      {/* <Menu
 | 
			
		||||
        menu={menu}
 | 
			
		||||
        handleDeleteMenu={handleDeleteMenu}
 | 
			
		||||
        handleAddMenu={handleAddMenu}
 | 
			
		||||
        nadpis="Menu"
 | 
			
		||||
      /> */}
 | 
			
		||||
      <Animal
 | 
			
		||||
        animal={animal}
 | 
			
		||||
        inputValue={newAnimal}
 | 
			
		||||
        handleAddAnimal={handleAddAnimal}
 | 
			
		||||
        handleDeleteAnimal={handleDeleteAnimal}
 | 
			
		||||
        handleOnChange={handleOnChange}
 | 
			
		||||
        nadpis="Super ZOO"
 | 
			
		||||
      />
 | 
			
		||||
      {/* <ChakraProvider>
 | 
			
		||||
        <Button colorScheme="teal">Chakra button</Button>
 | 
			
		||||
      </ChakraProvider> */}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										5
									
								
								src/Input.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								src/Input.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
			
		||||
import React from "react";
 | 
			
		||||
 | 
			
		||||
export const Input = ({ onChange, value }) => {
 | 
			
		||||
  return <input name="test" value={value} onChange={onChange} />;
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										14
									
								
								src/Menu.js
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								src/Menu.js
									
									
									
									
									
								
							@ -1,6 +1,6 @@
 | 
			
		||||
import React from "react";
 | 
			
		||||
import { Button } from "./Button";
 | 
			
		||||
 | 
			
		||||
import { useState } from "react";
 | 
			
		||||
 | 
			
		||||
export const Menu = (props) => {
 | 
			
		||||
  const menu = props.menu;
 | 
			
		||||
@ -8,19 +8,22 @@ export const Menu = (props) => {
 | 
			
		||||
 | 
			
		||||
  // const {menu, nadpis} = props;
 | 
			
		||||
 | 
			
		||||
  //const [menu, setMenu] = useState(["Uvod", "O nas", "Kontakt"]);
 | 
			
		||||
  //const menu = ["Uvod", "O nas", "Kontakt"];
 | 
			
		||||
  //const menu = [];
 | 
			
		||||
  //   if (menu.length === 0) {
 | 
			
		||||
  //     return <p>Menu je prazdne</p>;
 | 
			
		||||
  //   }
 | 
			
		||||
 | 
			
		||||
  const handleAddMenu = () => {
 | 
			
		||||
  /* const handleAddMenu = () => {
 | 
			
		||||
    console.log("pridal jsi menu");
 | 
			
		||||
    setMenu(["Uvod", "O nas", "Kontakt"]);
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  const handleDeleteMenu = () => {
 | 
			
		||||
    console.log("smazal jsi menu");
 | 
			
		||||
  };
 | 
			
		||||
    setMenu([]);
 | 
			
		||||
  }; */
 | 
			
		||||
 | 
			
		||||
  return (
 | 
			
		||||
    <nav>
 | 
			
		||||
@ -35,8 +38,9 @@ export const Menu = (props) => {
 | 
			
		||||
        </ul>
 | 
			
		||||
      )}
 | 
			
		||||
 | 
			
		||||
      <Button onClick={handleDeleteMenu}>Delete</Button>
 | 
			
		||||
      <Button onClick={handleAddMenu}>Add</Button>
 | 
			
		||||
      <Button onClick={props.handleDeleteMenu}>Delete</Button>
 | 
			
		||||
 | 
			
		||||
      <Button onClick={props.handleAddMenu}>Add</Button>
 | 
			
		||||
    </nav>
 | 
			
		||||
  );
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user