From 5733f19673aa65eeb61758725066936402a0b993 Mon Sep 17 00:00:00 2001 From: jafreli Date: Sun, 26 Jan 2025 00:43:34 +0100 Subject: [PATCH] Split the file. --- src/App.jsx | 92 ++--------------------------------- src/components/Home.jsx | 36 ++++++++++++++ src/components/MesageForm.jsx | 28 +++++++++++ src/components/Message.jsx | 46 ++++++++++++++++++ 4 files changed, 115 insertions(+), 87 deletions(-) create mode 100644 src/components/Home.jsx create mode 100644 src/components/MesageForm.jsx create mode 100644 src/components/Message.jsx diff --git a/src/App.jsx b/src/App.jsx index e0ad6cd..d9034f2 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1,89 +1,7 @@ -import React, { useState, useEffect } from 'react'; -import PocketBase from 'pocketbase'; -import { useParams, BrowserRouter as Router, Route, Routes, Link } from 'react-router-dom'; - -const pb = new PocketBase('https://db.out.jafre.li'); - -const Home = () => { - const [message, setMessage] = useState(''); - const [submitted, setSubmitted] = useState(false); - const [error, setError] = useState(null); - - const handleSubmit = async (e) => { - e.preventDefault(); - try { - const data = { message }; - const record = await pb.collection('jbin').create(data); - setSubmitted(record.id); - } catch (err) { - setError('Fehler beim Erstellen der Nachricht'); - } - }; - - return ( -
-

Nachricht erstellen

-
- - -
- {submitted && ( -

- Nachricht erstellt! Schaue sie dir hier an: /{submitted} -

- )} - {error &&

{error}

} -
- ); -}; - -const Message = () => { - const { id } = useParams(); - const [message, setMessage] = useState(null); - const [error, setError] = useState(null); - - useEffect(() => { - const fetchMessage = async () => { - try { - const record = await pb.collection('jbin').getOne(id); - setMessage(record.message); - } catch (err) { - setError('Nachricht nicht gefunden'); - } - }; - - fetchMessage(); - }, [id]); - - return ( -
- {error ? ( -

{error}

- ) : message ? ( - <> -

Nachricht

-

{message}

- - ) : ( -

Lädt...

- )} - - - -
- ); -}; - +import React from 'react'; +import { BrowserRouter as Router, Route, Routes } from 'react-router-dom'; +import Home from './components/Home'; +import Message from './components/Message'; const App = () => { return ( @@ -96,4 +14,4 @@ const App = () => { ); }; -export default App; \ No newline at end of file +export default App; diff --git a/src/components/Home.jsx b/src/components/Home.jsx new file mode 100644 index 0000000..ca83473 --- /dev/null +++ b/src/components/Home.jsx @@ -0,0 +1,36 @@ +import React, { useState } from 'react'; +import { Link } from 'react-router-dom'; +import PocketBase from 'pocketbase'; +import MessageForm from './MessageForm'; + +const pb = new PocketBase('https://db.out.jafre.li'); + +const Home = () => { + const [submitted, setSubmitted] = useState(false); + const [error, setError] = useState(null); + + const handleSubmit = async (message) => { + try { + const data = { message }; + const record = await pb.collection('jbin').create(data); + setSubmitted(record.id); + } catch (err) { + setError('Fehler beim Erstellen der Nachricht'); + } + }; + + return ( +
+

Nachricht erstellen

+ + {submitted && ( +

+ Nachricht erstellt! Schaue sie dir hier an: /{submitted} +

+ )} + {error &&

{error}

} +
+ ); +}; + +export default Home; diff --git a/src/components/MesageForm.jsx b/src/components/MesageForm.jsx new file mode 100644 index 0000000..ce4c079 --- /dev/null +++ b/src/components/MesageForm.jsx @@ -0,0 +1,28 @@ +import React, { useState } from 'react'; + +const MessageForm = ({ onSubmit }) => { + const [message, setMessage] = useState(''); + + const handleSubmit = (e) => { + e.preventDefault(); + onSubmit(message); + setMessage(''); + }; + + return ( +
+ + +
+ ); +}; + +export default MessageForm; diff --git a/src/components/Message.jsx b/src/components/Message.jsx new file mode 100644 index 0000000..8390b44 --- /dev/null +++ b/src/components/Message.jsx @@ -0,0 +1,46 @@ +import React, { useState, useEffect } from 'react'; +import PocketBase from 'pocketbase'; +import { useParams, Link } from 'react-router-dom'; + +const pb = new PocketBase('https://db.out.jafre.li'); + +const Message = () => { + const { id } = useParams(); + const [message, setMessage] = useState(null); + const [error, setError] = useState(null); + + useEffect(() => { + const fetchMessage = async () => { + try { + const record = await pb.collection('jbin').getOne(id); + setMessage(record.message); + } catch (err) { + setError('Nachricht nicht gefunden'); + } + }; + + fetchMessage(); + }, [id]); + + return ( +
+ {error ? ( +

{error}

+ ) : message ? ( + <> +

Nachricht

+

{message}

+ + ) : ( +

Lädt...

+ )} + + + +
+ ); +}; + +export default Message;