refactor: NPED Context, sound update and start session
This commit is contained in:
@@ -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>(
|
||||
|
||||
@@ -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<
|
||||
|
||||
@@ -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>
|
||||
);
|
||||
|
||||
@@ -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}
|
||||
|
||||
Reference in New Issue
Block a user