diff --git a/src/containers/AddPostForm.jsx b/src/containers/AddPostForm.jsx index 36a310853872df0b84c3d859e703ea9758a50a82..7ed1e66b36c99836d065d4259662a075faa30a38 100644 --- a/src/containers/AddPostForm.jsx +++ b/src/containers/AddPostForm.jsx @@ -21,10 +21,15 @@ const AddPostForm = ({ className }) => { const [addingPost, addingPostError] = useActionState(addPost, { content: text, }); - const [addingProposal, addingProposalError] = useActionState(addPost, { + const [addingProposal, addingProposalError] = useActionState(addProposal, { content: text, }); + const apiError = addingPostError || addingProposalError; + const is429ApiError = + apiError && + apiError.toString().indexOf("Unexpected status code 429") !== -1; + const onOutsideClick = useCallback(() => { setExpanded(false); }, [setExpanded]); @@ -113,14 +118,18 @@ const AddPostForm = ({ className }) => { } > <div className="space-y-4"> - {addingPostError && ( - <ErrorMessage> - Při přidávání příspěvku došlo k problému: {addingPostError}. - </ErrorMessage> + {apiError && is429ApiError && ( + <div className="alert alert--warning"> + <i className="alert__icon ico--clock text-lg" /> + <span> + <strong>Zpomal!</strong> Další příspěvek můžeš přidat nejdříve + po 1 minutě od přidání posledního. + </span> + </div> )} - {addingProposalError && ( + {apiError && !is429ApiError && ( <ErrorMessage> - Při přidávání příspěvku došlo k problému: {addingProposalError}. + Při přidávání příspěvku došlo k problému: {apiError}. </ErrorMessage> )} diff --git a/src/pages/Home.jsx b/src/pages/Home.jsx index 262c8c6e8c79a452e90fb92daf6ac8929c5120a5..fdf8f2cd92a84cfeeb3b48e489ea0cfd374dd341 100644 --- a/src/pages/Home.jsx +++ b/src/pages/Home.jsx @@ -2,6 +2,7 @@ import React, { useCallback, useEffect, useState } from "react"; import { Helmet } from "react-helmet-async"; import Joyride, { EVENTS } from "react-joyride"; import ReactPlayer from "react-player/lazy"; +import { useKeycloak } from "@react-keycloak/web"; import useWindowSize from "@rooks/use-window-size"; import { @@ -66,6 +67,11 @@ const Home = () => { onEndProgramPointConfirm, onEndProgramPointCancel, ] = useActionConfirm(endProgramPoint, programEntry); + const { keycloak } = useKeycloak(); + + const login = useCallback(() => { + keycloak.login(); + }, [keycloak]); useEffect(() => { if (isLg && !localStorage.getItem(tourLSKey)) { @@ -303,6 +309,18 @@ const Home = () => { Rozprava je uzavřena - příspěvky teď nelze přidávat. </p> )} + {programEntry.discussionOpened && !isAuthenticated && ( + <p className="alert alert--light items-center mb-4"> + <i className="alert__icon ico--info text-lg" /> + <span> + Pokud chceš přidat nový příspěvek,{" "} + <button onClick={login} className="underline cursor-pointer"> + přihlaš se pomocí Pirátské identity + </button> + . + </span> + </p> + )} {programEntry.discussionOpened && isAuthenticated && user.isBanned && ( <p className="alert alert--error items-center mb-4"> <i className="alert__icon ico--warning text-lg" />