Refactor detail scene elements to single class
This commit is contained in:
parent
85214fad3f
commit
d084511c6b
11 changed files with 162 additions and 335 deletions
27
src/store.ts
27
src/store.ts
|
|
@ -3,9 +3,10 @@ import { devtools } from 'zustand/middleware';
|
|||
import { Scenes } from './scenes/scenes';
|
||||
import { CompanionMessage, CompanionState } from './ui/companion';
|
||||
import project from '../metadata/project.json';
|
||||
import { getSubproject } from './helpers';
|
||||
import { SubProject } from './types';
|
||||
import { InfoMessageType } from './ui/info';
|
||||
import { RevealableInterface, RevealableTypes } from './sketchObjects/Revealable';
|
||||
import { SubProject } from './types';
|
||||
import { getRevealablesforSubproject } from './helpers';
|
||||
|
||||
export interface State {
|
||||
currentScene: Scenes;
|
||||
|
|
@ -15,10 +16,8 @@ export interface State {
|
|||
addInfoMessage: (newMessage: InfoMessageType) => void;
|
||||
userMessages: CompanionMessage[];
|
||||
addUserMessage: (newMessage: CompanionMessage) => void;
|
||||
currContributors: any;
|
||||
currLegacy: any;
|
||||
currPackages: any;
|
||||
setDetailScene: (packageName: string) => void;
|
||||
revealables: RevealableInterface[];
|
||||
setProjectMetadata: (projectName: string) => void;
|
||||
}
|
||||
|
||||
const store = create<State>(
|
||||
|
|
@ -32,17 +31,11 @@ const store = create<State>(
|
|||
userMessages: [],
|
||||
addUserMessage: (newMessage) =>
|
||||
set((state) => ({ userMessages: [...state.userMessages, newMessage] })),
|
||||
currContributors: [],
|
||||
currLegacy: [],
|
||||
currPackages: [],
|
||||
setDetailScene: (packageName) =>
|
||||
set(() => ({
|
||||
currContributors: getSubproject(packageName, project.subprojects as SubProject[]).contents
|
||||
.contributors,
|
||||
currLegacy: getSubproject(packageName, project.subprojects as SubProject[]).contents.legacy,
|
||||
currPackages: getSubproject(packageName, project.subprojects as SubProject[]).contents
|
||||
.packages,
|
||||
})),
|
||||
revealables: [],
|
||||
setProjectMetadata: (projectName) =>
|
||||
set({
|
||||
revealables: getRevealablesforSubproject(projectName, project.subprojects),
|
||||
}),
|
||||
}))
|
||||
);
|
||||
|
||||
|
|
|
|||
Reference in a new issue