From 8aeaf9ab9884ed6f669633b1ab67c1ae219f7916 Mon Sep 17 00:00:00 2001 From: Andrew Lee Date: Sun, 4 Feb 2024 17:33:39 -0500 Subject: Guestbook refreshes once submitting a message --- src/components/Guestbook.jsx | 40 ++++++++++++++++++++++------------------ src/components/GuestbookForm.jsx | 27 +++++++++++++-------------- 2 files changed, 35 insertions(+), 32 deletions(-) (limited to 'src/components') diff --git a/src/components/Guestbook.jsx b/src/components/Guestbook.jsx index 498bbbe..41d0271 100644 --- a/src/components/Guestbook.jsx +++ b/src/components/Guestbook.jsx @@ -2,6 +2,7 @@ import { h, Component } from 'preact'; import { pb } from '../services/pocketbase'; import { formatDate } from "../util"; import sanitizeHtml from 'sanitize-html'; +import GuestbookForm from "./GuestbookForm.jsx"; class Guestbook extends Component { state = { @@ -25,29 +26,32 @@ class Guestbook extends Component { await this.fetchMessages(); } + refresh = async () => { + await this.fetchMessages(); + } + render() { const { message, error } = this.state; - if (error) { - return

{error}

; - } - - if (!message) { - return

Loading messages...

; - } - return (
-
- {message.map((g) => ( -
-

Message from: {g.name}

- {formatDate(g.created)} -
- {g.website && Website} -
- ))} -
+ + {error ? ( +

{error}

+ ) : !message ? ( +

Loading messages...

+ ) : ( +
+ {message.map((g) => ( +
+

Message from: {g.name}

+ {formatDate(g.created)} +
+ {g.website && Website} +
+ ))} +
+ )}
); } diff --git a/src/components/GuestbookForm.jsx b/src/components/GuestbookForm.jsx index b8fc1c2..841902d 100644 --- a/src/components/GuestbookForm.jsx +++ b/src/components/GuestbookForm.jsx @@ -25,19 +25,18 @@ class GuestbookForm extends Component { } const messageHtml = marked(DOMPurify.sanitize(this.state.message)); - try { - await createMessage({ ...this.state, message: messageHtml }); + await createMessage({ ...this.state, message: messageHtml }); - this.setState({ - name: '', - email: '', - website: '', - message: '', - isMessageSent: true, - errorMessage: '' - }); - } catch (error) { - this.setState({ errorMessage: error.message }); + this.setState({ + name: '', + email: '', + website: '', + message: '', + isMessageSent: true, + }); + + if (this.props.onMessageSent) { + this.props.onMessageSent(); } } @@ -47,7 +46,7 @@ class GuestbookForm extends Component {

Submit Message

- -
-- cgit v1.2.3