housekeeping: standardize uiAccess nomenclature, standardize signal component setup

This commit is contained in:
wil committed 2024-09-12 10:24:57 -04:00
1 parent 95ca2c333b
commit 87399eec54
13 files changed
+85 -60

No files matched your search

+2 -2
View File
@@ -59,7 +59,7 @@ export class Engine {
});
// TODO: You may listen to all the image toolbar events here
uiEvents.imageToolbar.MOVE.onClick(() => {
uiEvents.toolbarImage.MOVE.onClick(() => {
console.log("move");
});
@@ -159,7 +159,7 @@ export class Engine {
public initializeStage(sceneToken: string) {
// load canvas that was originaly saved TODO Save manager for resharing.
uiAccess.imageToolbar.hide();
uiAccess.toolbarImage.hide();
uiAccess.loadingBar.hide();
this.setupStage();
}
+3 -3
View File
@@ -4,7 +4,7 @@ import { NetworkedNodeContext } from "./NetworkedNodeContext";
import { v4 as uuidv4 } from "uuid";
import { uiAccess } from "~/signals";
const imageToolbar = uiAccess.imageToolbar;
const toolbarImage = uiAccess.toolbarImage;
const loadingBar = uiAccess.loadingBar;
export class VideoNode extends NetworkedNodeContext {
@@ -159,7 +159,7 @@ export class VideoNode extends NetworkedNodeContext {
});
this.node.on("mousedown", () => {
imageToolbar.show();
toolbarImage.show();
this.updateContextMenuPosition();
if (this.didFinishLoading == false) {
@@ -194,7 +194,7 @@ export class VideoNode extends NetworkedNodeContext {
}
updateContextMenuPosition() {
imageToolbar.setPosition({
toolbarImage.setPosition({
x: this.node.getPosition().x + this.node.getSize().width / 4,
y: this.node.getPosition().y - 150,
});
@@ -10,15 +10,15 @@ import { ToolbarImageButtonNames } from "~/components/features/ToolbarImage/enum
import { transitionTimingStyles } from "~/components/styles";
export const ContextualToolbarImage = () => {
const { isShowing, position, ...rest } = uiAccess.imageToolbar.signal.value;
const { isShowing, position, ...rest } = uiAccess.toolbarImage.signal.value;
const buttonsProps = Object.values(ToolbarImageButtonNames).reduce(
(acc, buttonName) => {
acc[buttonName] = {
onClick: dispatchUiEvents.imageToolbar[buttonName],
onClick: dispatchUiEvents.toolbarImage[buttonName],
disabled:
uiAccess.imageToolbar.signal.value.buttonStates[buttonName].disabled,
uiAccess.toolbarImage.signal.value.buttonStates[buttonName].disabled,
active:
uiAccess.imageToolbar.signal.value.buttonStates[buttonName].active,
uiAccess.toolbarImage.signal.value.buttonStates[buttonName].active,
};
return acc;
},
@@ -5,7 +5,7 @@ import { KonvaCanvasContainer } from "./KonvaCanvasContainer";
import { ContextualToolbarImage } from "./ContextualToolbarImage";
import { ContextualLoadingBar } from "./ContextualLoadingBar";
import { SignaledToolbarMain } from "./SignaledToolbarMain";
import { DialogError } from "~/components/features";
import { SignaledDialogError } from "./SignaledComponents";
import { EngineType } from "~/KonvaApp";
// The KonvaApp is the root of the Konva stage
@@ -33,7 +33,7 @@ export const KonvaRootComponent = ({ className }: { className: string }) => {
<Button
className="absolute bottom-0 left-0"
onClick={() => {
uiAccess.errorDialogue.show({
uiAccess.dialogueError.show({
title: "Test Error",
message: "This is a test error",
});
@@ -51,7 +51,7 @@ export const KonvaRootComponent = ({ className }: { className: string }) => {
<SignaledToolbarMain />
<ContextualToolbarImage />
<ContextualLoadingBar />
<DialogError />
<SignaledDialogError />
</>
);
};
@@ -0,0 +1,21 @@
import { useCallback } from "react";
import { dialogueError } from "~/signals/uiAccess/dialogueError";
import { DialogError } from "~/components/features";
export const SignaledDialogError = () => {
const props = dialogueError.signal.value;
const { isShowing, title, message } = props;
const onClose = useCallback(() => {
dialogueError.hide();
}, []);
return (
<DialogError
isShowing={isShowing}
title={title}
message={message}
onClose={onClose}
/>
);
};
+11 -11
View File
@@ -8,13 +8,13 @@ import { ToolbarImageButtonData } from "~/components/features/ToolbarImage/data"
import { ToolbarImageButtonNames } from "~/components/features/ToolbarImage/enums";
export const ContextualToolbarForm = () => {
const imageToolbar = uiAccess.imageToolbar;
const toolbarImage = uiAccess.toolbarImage;
const {
isShowing,
disabled: allDisabled,
buttonStates,
} = imageToolbar.signal.value;
} = toolbarImage.signal.value;
const [x, setX] = useState(0);
const [y, setY] = useState(0);
@@ -49,7 +49,7 @@ export const ContextualToolbarForm = () => {
/>
<Button
onClick={() =>
imageToolbar.setPosition({
toolbarImage.setPosition({
x: x,
y: y,
})
@@ -57,18 +57,18 @@ export const ContextualToolbarForm = () => {
>
Set Position
</Button>
<Button disabled={isShowing} onClick={() => imageToolbar.show()}>
<Button disabled={isShowing} onClick={() => toolbarImage.show()}>
Show
</Button>
<Button disabled={!isShowing} onClick={() => imageToolbar.hide()}>
<Button disabled={!isShowing} onClick={() => toolbarImage.hide()}>
Hide
</Button>
<Button
onClick={() => {
const exec = allDisabled
? imageToolbar.enable
: imageToolbar.disable;
? toolbarImage.enable
: toolbarImage.disable;
exec();
}}
>
@@ -84,7 +84,7 @@ export const ContextualToolbarForm = () => {
buttonStates[button.name].disabled ? "secondary" : "primary"
}
onClick={() =>
imageToolbar.changeButtonState(button.name, {
toolbarImage.changeButtonState(button.name, {
disabled: !buttonStates[button.name].disabled,
})
}
@@ -100,7 +100,7 @@ export const ContextualToolbarForm = () => {
icon={button.icon}
variant={buttonStates[button.name].active ? "primary" : "secondary"}
onClick={() =>
imageToolbar.changeButtonState(button.name, {
toolbarImage.changeButtonState(button.name, {
active: !buttonStates[button.name].active,
})
}
@@ -118,9 +118,9 @@ export const ContextualToolbarForm = () => {
export const LittleThing = () => {
Object.values(ToolbarImageButtonNames).forEach((buttonName) => {
uiEvents.imageToolbar[buttonName].onClick(() => {
uiEvents.toolbarImage[buttonName].onClick(() => {
console.log(buttonName);
uiAccess.imageToolbar.changeButtonState(buttonName, {
uiAccess.toolbarImage.changeButtonState(buttonName, {
disabled: true,
});
});
@@ -3,7 +3,7 @@ import { Input, Button } from "~/components/ui";
import { uiAccess } from "~/signals/uiAccess";
export const ErrorDialogForm = () => {
export const DialogErrorForm = () => {
const [title, setTitle] = useState<string | undefined>(undefined);
const [message, setMessage] = useState<string | undefined>(undefined);
@@ -35,7 +35,7 @@ export const ErrorDialogForm = () => {
/>
<Button
onClick={() => {
uiAccess.errorDialogue.show({
uiAccess.dialogueError.show({
title: title,
message: message,
});
@@ -45,7 +45,7 @@ export const ErrorDialogForm = () => {
</Button>
<Button
onClick={() => {
uiAccess.errorDialogue.hide();
uiAccess.dialogueError.hide();
}}
>
Hide
+4 -4
View File
@@ -1,13 +1,13 @@
import { ContextualToolbarImage } from "~/KonvaRootComponent/ContextualToolbarImage";
import { ContextualLoadingBar } from "~/KonvaRootComponent/ContextualLoadingBar";
import { DialogError } from "~/components/features";
import { SignaledDialogError } from "~/KonvaRootComponent/SignaledComponents";
import { useRenderCounter } from "~/hooks/useRenderCounter";
import { ContextualToolbarForm } from "./ContextualToolbarForm";
import { ContextualLoadingBarForm } from "./ContextualLoadingBarForm";
import { ErrorDialogForm } from "./ErrorDialogForm";
import { DialogErrorForm } from "./DialogErrorForm";
import { ButtonTestTester } from "./ButtonTestTester";
@@ -21,12 +21,12 @@ export const Sandbox = () => {
<ButtonTestTester />
<ContextualToolbarForm />
<ContextualLoadingBarForm />
<ErrorDialogForm />
<DialogErrorForm />
</div>
<ContextualToolbarImage />
<ContextualLoadingBar />
<DialogError />
<SignaledDialogError />
</div>
);
};
+14 -10
View File
@@ -1,5 +1,5 @@
import { twMerge } from "tailwind-merge";
import { uiAccess } from "~/signals/uiAccess";
import { paperWrapperStyles } from "~/components/styles";
import {
Description,
@@ -9,15 +9,19 @@ import {
} from "@headlessui/react";
import { Button } from "~/components/ui";
export const DialogError = () => {
const props = uiAccess.errorDialogue.signal.value;
const { isShowing, title, message } = props;
function handleClose() {
uiAccess.errorDialogue.hide();
}
export const DialogError = ({
isShowing,
title,
message,
onClose,
}: {
isShowing: boolean;
title: string;
message: string;
onClose: () => void;
}) => {
return (
<Dialog open={isShowing} onClose={handleClose} className="relative z-50">
<Dialog open={isShowing} onClose={onClose} className="relative z-50">
<div className="fixed inset-0 flex w-screen items-center justify-center p-4">
<DialogPanel
className={twMerge(
@@ -28,7 +32,7 @@ export const DialogError = () => {
<DialogTitle className="font-bold">{title}</DialogTitle>
<Description>{message}</Description>
<div className="flex justify-end gap-4">
<Button onClick={handleClose}>Close</Button>
<Button onClick={onClose}>Close</Button>
</div>
</DialogPanel>
</div>
@@ -5,20 +5,20 @@ const initialState = {
title: "",
message: "",
};
const errorDialogueSignal = signal(initialState);
const dialogErrorSignal = signal(initialState);
export const errorDialogue = {
signal: errorDialogueSignal,
export const dialogueError = {
signal: dialogErrorSignal,
show({ title, message }: { title?: string; message?: string }) {
errorDialogueSignal.value = {
...errorDialogueSignal.value,
dialogErrorSignal.value = {
...dialogErrorSignal.value,
title: title ?? "Error",
message: message ?? "An unknownerror occurred",
isShowing: true,
};
},
hide() {
errorDialogueSignal.value = initialState;
dialogErrorSignal.value = initialState;
},
};
+4 -4
View File
@@ -8,16 +8,16 @@ export type { uiAccessType };
import { buttonTest } from "./buttonTest";
import { errorDialogue } from "./errorDialogue";
import { dialogueError } from "./dialogueError";
import { loadingBar } from "./loadingBar";
import { toolbarImage as imageToolbar } from "./toolbarImage";
import { toolbarImage } from "./toolbarImage";
import { toolbarVideo } from "./toolbarVideo";
import { toolbarMain } from "./toolbarMain";
export const uiAccess = {
buttonTest,
errorDialogue,
imageToolbar,
dialogueError,
toolbarImage,
loadingBar,
toolbarVideo,
toolbarMain,
+6 -6
View File
@@ -2,7 +2,7 @@ import { signal } from "@preact/signals-react";
import { ContextualUi } from "./type";
import { ToolbarImageButtonNames } from "~/components/features/ToolbarImage/enums";
interface ContextualImageToolbarProps extends ContextualUi {
interface ContextualToolbarImageProps extends ContextualUi {
disabled: boolean;
buttonStates: {
[key in ToolbarImageButtonNames]: {
@@ -12,7 +12,7 @@ interface ContextualImageToolbarProps extends ContextualUi {
};
}
const toolbarImageSignal = signal<ContextualImageToolbarProps>({
const toolbarImageSignal = signal<ContextualToolbarImageProps>({
position: {
x: 0,
y: 0,
@@ -24,16 +24,16 @@ const toolbarImageSignal = signal<ContextualImageToolbarProps>({
export const toolbarImage = {
signal: toolbarImageSignal,
setup(props: ContextualImageToolbarProps) {
setup(props: ContextualToolbarImageProps) {
toolbarImageSignal.value = props;
},
update(props: Partial<ContextualImageToolbarProps>) {
update(props: Partial<ContextualToolbarImageProps>) {
toolbarImageSignal.value = {
...toolbarImageSignal.value,
...props,
};
},
setPosition(position: ContextualImageToolbarProps["position"]) {
setPosition(position: ContextualToolbarImageProps["position"]) {
toolbarImageSignal.value = {
...toolbarImageSignal.value,
position,
@@ -88,5 +88,5 @@ function initButtonStates() {
active: false,
};
});
return ret as ContextualImageToolbarProps["buttonStates"];
return ret as ContextualToolbarImageProps["buttonStates"];
}
+4 -4
View File
@@ -3,8 +3,8 @@ import {
events as addMediaEvents,
} from "./addMedia";
import {
dispatchers as imageToolbarDispatchers,
eventsHandlers as imageToolbarEvents,
dispatchers as toolbarImageDispatchers,
eventsHandlers as toolbarImageEvents,
} from "./toolbarImage";
import {
dispatchers as videoToolbarDispatchers,
@@ -22,14 +22,14 @@ import {
export const uiEvents = {
...addMediaEvents,
buttonTest: buttonTestEvent,
imageToolbar: imageToolbarEvents,
toolbarImage: toolbarImageEvents,
toolbarMain: toolbarMainEvents,
toolbarVideo: videoToolbarEvents,
};
export const dispatchUiEvents = {
...addMediaDispatchers,
buttonTest: buttonTestDispatcher,
imageToolbar: imageToolbarDispatchers,
toolbarImage: toolbarImageDispatchers,
toolbarMain: toolbarMainDispatchers,
toolbarVideo: videoToolbarDispatchers,
};