Refactor detail scene elements to single class

This commit is contained in:
Dennis Schoepf 2021-07-31 16:27:07 +02:00
parent 85214fad3f
commit d084511c6b
11 changed files with 162 additions and 335 deletions

View file

@ -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),
}),
}))
);