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 &&
![]()
}
-
-
-
-
-
-
QR-Code drucken
-
- )
+// return (
+//
+//
Profil
+//
+//
+// {dog.data &&
![]()
}
+//
Bild ändern
+//
+//
+// {dog.data &&
![]()
}
+//
+//
+//
+//
+//
+//
QR-Code drucken
+//
+// )
}
export default Profil
\ No newline at end of file