From 752e6c491ac3d3802e5d3de21ff29a04265908ff Mon Sep 17 00:00:00 2001 From: Peter Hoppe Date: Sat, 28 Jan 2023 00:51:08 +0100 Subject: [PATCH] install swr --- package-lock.json | 23 +++++ package.json | 3 +- php/php-dog/upload.php | 2 +- src/components/Profil.tsx | 206 ++++++++++++++++++++------------------ 4 files changed, 133 insertions(+), 101 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0257d05..a9fa663 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,6 +24,7 @@ "react-repeatable": "^2.0.1", "react-router-dom": "^6.4.5", "react-scripts": "5.0.1", + "swr": "^2.0.2", "typescript": "^4.9.4", "use-fit-text": "^2.4.0", "web-vitals": "^2.1.4" @@ -15403,6 +15404,20 @@ "boolbase": "~1.0.0" } }, + "node_modules/swr": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/swr/-/swr-2.0.2.tgz", + "integrity": "sha512-iHbQW17hsduonMEliZnr6/yaxb+yvLe2r0+AH+ZfeqKzwc2bb+QRYpZm5/b/H0Lxgy7VWow4o71JeSazSun+9A==", + "dependencies": { + "use-sync-external-store": "^1.2.0" + }, + "engines": { + "pnpm": "7" + }, + "peerDependencies": { + "react": "^16.11.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", @@ -15925,6 +15940,14 @@ "react": ">=16.8.0" } }, + "node_modules/use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", diff --git a/package.json b/package.json index 20f2077..e8c7248 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "react-repeatable": "^2.0.1", "react-router-dom": "^6.4.5", "react-scripts": "5.0.1", + "swr": "^2.0.2", "typescript": "^4.9.4", "use-fit-text": "^2.4.0", "web-vitals": "^2.1.4" @@ -30,7 +31,7 @@ "eject": "react-scripts eject", "build:local": "env-cmd -f .env.local npm run build", "build:hope-fly": "env-cmd -f .env.hope-fly npm run build", - "postbuild:local": "cp ./src/.htaccess ./build && sudo cp -vrRT ./build/. /opt/lampp/htdocs/dog/", + "postbuild:local": "cp ./src/.htaccess ./build && cp -vrRT ./build/. /opt/lampp/htdocs/dog/", "postbuild:hope-fly": "cp ./src/.htaccess ./build" }, "eslintConfig": { diff --git a/php/php-dog/upload.php b/php/php-dog/upload.php index 2c1b998..36e0165 100644 --- a/php/php-dog/upload.php +++ b/php/php-dog/upload.php @@ -135,7 +135,7 @@ try { } $targetFilePath = $targetDir . '/' . $newFilename; -// echo "targetFilePath ". $targetFilePath."\n"; + echo "targetFilePath ". $targetFilePath."\n"; if (isset($_POST["submit"]) && !empty($_FILES["file"]["name"])) { diff --git a/src/components/Profil.tsx b/src/components/Profil.tsx index 0bb9617..b77d388 100644 --- a/src/components/Profil.tsx +++ b/src/components/Profil.tsx @@ -1,7 +1,8 @@ -import React, { useContext, useState } from 'react' +import React, { useContext, useState } from 'react'; +import useSWR from 'swr'; import { Link } from 'react-router-dom'; import { ResponseT, UserCtx, UserCtxT } from '../context/UserContext'; -import {Axios, updateDog} from '../services/PhpApi'; +import {Axios, getDog, updateDog} from '../services/PhpApi'; import CreateQr from '../services/CreateQr'; import Img from './Img'; import './Profil.css'; @@ -18,117 +19,124 @@ function Profil() phone:'', qr_code: null }); + const { data, error, isLoading } = useSWR( user?.qr_id, getDog); - if(user && (dog === undefined || dog.success === undefined)) - { - Axios.post('getDog.php', - { - qr_id: user.qr_id - }) - .then((resDog) => - { - setDog(resDog.data); - setFormData( - { - email: resDog.data.data.email, - name: resDog.data.data.name, - phone: resDog.data.data.phone, - qr_code: resDog.data.data.qr_code - }); - if(resDog.data.data.qr_code === null) + if (error) return (
failed to load
); + if (isLoading) return (
loading...
); + + console.log(data); + console.log(user); + + // setDog(data); + // setFormData( + // { + // email: data.data.email, + // name: data.data.name, + // phone: data.data.phone, + // qr_code: data.data.qr_code + // }); + + + if(data.data.qr_code === null) { // qrcode generieren und in der Datenbank speichern - CreateQr({qr_id: user.qr_id}); + CreateQr({qr_id: user?.qr_id}); } + return ( + <> +
+
got data
+ + ); - }) - .catch((err) => console.error(err)); - } +// }) +// .catch((err) => console.error(err)); +// } - const onChangeInput = (e: React.FormEvent ) => { - setFormData({ - ...formData, - [e.currentTarget.name]:e.currentTarget.value - }) - } +// const onChangeInput = (e: React.FormEvent ) => { +// setFormData({ +// ...formData, +// [e.currentTarget.name]:e.currentTarget.value +// }) +// } - function showData(data: any/*, e: React.FormEvent | React.MouseEvent*/) - { - if(data.success) - { - setSuccessMsg('Daten geändert!'); - setErrMsg("false"); +// function showData(data: any/*, e: React.FormEvent | React.MouseEvent*/) +// { +// if(data.success) +// { +// setSuccessMsg('Daten geändert!'); +// setErrMsg("false"); - // setSuccessMsg and setErrMsg force rendering - // if(e as React.FormEvent !== null) - // (e as React.FormEvent).currentTarget.reset(); - // if(e as React.MouseEvent !== null) - // (e as React.MouseEvent).currentTarget.onre(); - } - else if(!data.success && data.message) - { - setSuccessMsg("false"); - setErrMsg(data.message); - } - } +// // setSuccessMsg and setErrMsg force rendering +// // if(e as React.FormEvent !== null) +// // (e as React.FormEvent).currentTarget.reset(); +// // if(e as React.MouseEvent !== null) +// // (e as React.MouseEvent).currentTarget.onre(); +// } +// else if(!data.success && data.message) +// { +// setSuccessMsg("false"); +// setErrMsg(data.message); +// } +// } - const submitForm = async (e: React.FormEvent) => - { - e.preventDefault(); +// const submitForm = async (e: React.FormEvent) => +// { +// e.preventDefault(); - if(!Object.values(formData).every(val => val?.trim() !== '')){ - setSuccessMsg("false"); - setErrMsg('Bitte alle Felder ausfüllen!'); - return; - } +// if(!Object.values(formData).every(val => val?.trim() !== '')){ +// setSuccessMsg("false"); +// setErrMsg('Bitte alle Felder ausfüllen!'); +// return; +// } - const data = await updateDog(formData); - showData(data/*, e*/); - } +// const data = await updateDog(formData); +// showData(data/*, e*/); +// } - const qr_refresh = async (e: React.MouseEvent) => - { - e.preventDefault(); - formData.qr_code = null; - const data = await updateDog(formData); - showData(data/*, e*/); - } +// const qr_refresh = async (e: React.MouseEvent) => +// { +// e.preventDefault(); +// formData.qr_code = null; +// const data = await updateDog(formData); +// showData(data/*, e*/); +// } - return ( -
-

Profil

-
-
- {dog.data && } - Bild ändern -
-
- {dog.data && } - -
-
-
-
-
- - -
-
- - -
-
- - -
- {successMsg !== "false" &&
{successMsg}
} - {errMsg !== "false" &&
{errMsg}
} - -
- QR-Code drucken -
- ) +// return ( +//
+//

Profil

+//
+//
+// {dog.data && } +// Bild ändern +//
+//
+// {dog.data && } +// +//
+//
+//
+//
+//
+// +// +//
+//
+// +// +//
+//
+// +// +//
+// {successMsg !== "false" &&
{successMsg}
} +// {errMsg !== "false" &&
{errMsg}
} +// +//
+// QR-Code drucken +//
+// ) } export default Profil \ No newline at end of file