refactor: NPED Context, sound update and start session

This commit is contained in:
2025-09-25 10:38:49 +01:00
parent efd037754e
commit 80b407943f
20 changed files with 96 additions and 39 deletions

View File

@@ -1,9 +1,13 @@
import { createContext, useContext, type SetStateAction } from "react";
import type { NPEDUser } from "../types/types";
import type { NPEDUser, SightingType } from "../types/types";
type UserContextValue = {
user: NPEDUser | null;
setUser: React.Dispatch<SetStateAction<NPEDUser | null>>;
sessionStarted: boolean;
setSessionStarted: React.Dispatch<SetStateAction<boolean>>;
sessionList: SightingType[];
setSessionList: React.Dispatch<SetStateAction<SightingType[]>>;
};
export const NPEDUserContext = createContext<UserContextValue | undefined>(

View File

@@ -7,7 +7,7 @@ type SightingFeedContextType = {
setSelectedRef: (ref: number | null) => void;
// effectiveSelected: SightingType | null;
mostRecent: SightingType | null;
side: string;
side: string | undefined;
selectedSighting: SightingType | null;
setSelectedSighting: (sighting: SightingType | SightingType | null) => void;
setSightingModalOpen: (isSightingModalOpen: boolean) => void;
@@ -15,6 +15,9 @@ type SightingFeedContextType = {
isError: boolean;
isLoading: boolean;
data: SightingType | undefined;
sessionList: SightingType[];
sessionStarted: boolean;
setSessionStarted: (started: boolean) => void;
};
export const SightingFeedContext = createContext<

View File

@@ -1,5 +1,5 @@
import { useState, type ReactNode } from "react";
import type { NPEDUser } from "../../types/types";
import type { NPEDUser, SightingType } from "../../types/types";
import { NPEDUserContext } from "../NPEDUserContext";
type NPEDUserProviderType = {
@@ -8,9 +8,20 @@ type NPEDUserProviderType = {
export const NPEDUserProvider = ({ children }: NPEDUserProviderType) => {
const [user, setUser] = useState<NPEDUser | null>(null);
const [sessionStarted, setSessionStarted] = useState(false);
const [sessionList, setSessionList] = useState<SightingType[]>([]);
return (
<NPEDUserContext.Provider value={{ user, setUser }}>
<NPEDUserContext.Provider
value={{
user,
setUser,
setSessionStarted,
sessionStarted,
sessionList,
setSessionList,
}}
>
{children}
</NPEDUserContext.Provider>
);

View File

@@ -3,9 +3,9 @@ import { useSightingFeed } from "../../hooks/useSightingFeed";
import { SightingFeedContext } from "../SightingFeedContext";
type SightingFeedProviderProps = {
url: string;
url?: string | undefined;
children: ReactNode;
side: string;
side?: string | undefined;
};
export const SightingFeedProvider = ({
@@ -23,7 +23,10 @@ export const SightingFeedProvider = ({
setSelectedSighting,
selectedSighting,
mostRecent,
} = useSightingFeed(url, side);
sessionList,
sessionStarted,
setSessionStarted,
} = useSightingFeed(url);
const [isSightingModalOpen, setSightingModalOpen] = useState(false);
@@ -42,6 +45,9 @@ export const SightingFeedProvider = ({
isLoading,
side,
data,
sessionList,
sessionStarted,
setSessionStarted,
}}
>
{children}