fix attendnace

This commit is contained in:
tylen
2025-11-02 21:31:01 +02:00
parent c2e6f81775
commit c39384badf
4 changed files with 66 additions and 47 deletions

View File

@@ -1,17 +1,51 @@
import { useCookies } from "react-cookie";
import CenteredContainer from "./ChildrenContainer";
import useFetchUser from "../utils/fetchUser";
import type React from "react";
import ApologyMessage from "./Attendance";
import { useState } from "react";
function Greeting() {
const [cookie] = useCookies<string>(['userName'])
const userName = cookie.userName;
const { updateAttendance } = useFetchUser()
const Attendance: React.FC = () => {
const { updateAttendance, getAttendance } = useFetchUser()
const [attendance, setAttendance] = useState<boolean | null>(null)
const fetchAttendance = async () => {
const is = await getAttendance()
setAttendance(is)
}
fetchAttendance()
const handleUpdate = async (status: boolean) => {
await updateAttendance(status)
window.location.reload();
}
if (attendance == false) {
return (<ApologyMessage/>)
}
return (
<>
{attendance == null && (
<>
<h3>Присоеденишься?</h3>
<p>(Можно и потом ответить)</p>
<button style={localStyles.buttonOk} onClick={() => handleUpdate(true)}>Да!</button>
<button style={localStyles.buttonNok} onClick={() => handleUpdate(false)}>Не смогу в этот раз</button>
</>
)}
{attendance == true && (
<>
<h3>Круто! Ты с нами!</h3>
<p>Если все же по разным обстоятельствам ты не сможешь/не захочешь, то всегда можно передумать</p>
<button style={localStyles.buttonNok} onClick={() => handleUpdate(false)}>Все же никак</button>
</>)}
</>)
}
function Greeting() {
const [cookie] = useCookies<string>(['userName'])
const userName = cookie.userName;
return (
<>
<CenteredContainer>
@@ -24,11 +58,9 @@ function Greeting() {
Приглашаем тебя отпраздновать предстоящий Новый Год <b>2025-2026</b> с нами в сосновой избе, в которой, ко всему прочему, будет праздноваться годовщина нашей жизни в ней!
Наши двери открыты с <b>30.12.2025</b>. Праздник обычно длится до <b>01.01.2025</b>, но если тебе или твоим спутникам будет безумно плохо, то можно остаться и до второго числа.
<h3>Присоеденишься?</h3>
<p>(Можно и потом ответить)</p>
<button style={localStyles.buttonOk} onClick={() => handleUpdate(true)}>Да!</button>
<button style={localStyles.buttonNok}onClick={() => handleUpdate(false)}>Не смогу в этот раз</button>
</p>
<Attendance/>
</CenteredContainer>
</>
)

View File

@@ -3,7 +3,6 @@ import { useCookies } from 'react-cookie';
import { GUESTS } from '../constants/constants';
import useFetchUser from '../utils/fetchUser'; // Import your custom hook
import { useNotification } from '../NotificationContext';
import ApologyMessage from './Attendance';
import {Loading} from './Loading';
const InitialSetup = () => {
@@ -13,9 +12,8 @@ const InitialSetup = () => {
const [isSubmitted, setIsSubmitted] = useState(false);
const [password, setPassword] = useState('');
const [isPasswordSet, setIsPasswordSet] = useState(false); // To track if password is set
const [userAttendance, setUserAttendance] = useState<boolean | null>(null);
const { userSet, passwordCreate, signUser, validToken, getAttendance, isLoading } = useFetchUser(); // Destructure functions from the hook
const { userSet, passwordCreate, signUser, validToken, isLoading } = useFetchUser(); // Destructure functions from the hook
const notify = useNotification();
const checkUserPassword = async (name: string) => {
@@ -35,14 +33,8 @@ const InitialSetup = () => {
setIsSubmitted(isTokenValid);
};
const getUserAttendance = async () => {
const attendance = await getAttendance()
setUserAttendance(attendance)
}
useEffect(() => {
if (cookie.apiToken !== undefined) {
getUserAttendance()
validateToken();
}
}, [cookie.apiToken]);
@@ -65,17 +57,12 @@ const InitialSetup = () => {
}
validateToken()
};
if (isSubmitted && userAttendance !== false) {
if (isSubmitted) {
console.log('Selected', selectedName);
return null; // or you can redirect to another component or page
}
if (userAttendance == false) {
return (
<ApologyMessage/>
)
}
if (isLoading) {
return (