Buckets:
ktongue/docker_container / CAD_kevin /frontend /node_modules /webpack-dev-server /client /overlay /state-machine.js
| import createMachine from "./fsm.js"; | |
| /** | |
| * @typedef {Object} ShowOverlayData | |
| * @property {'warning' | 'error'} level | |
| * @property {Array<string | { moduleIdentifier?: string, moduleName?: string, loc?: string, message?: string }>} messages | |
| * @property {'build' | 'runtime'} messageSource | |
| */ | |
| /** | |
| * @typedef {Object} CreateOverlayMachineOptions | |
| * @property {(data: ShowOverlayData) => void} showOverlay | |
| * @property {() => void} hideOverlay | |
| */ | |
| /** | |
| * @param {CreateOverlayMachineOptions} options | |
| */ | |
| var createOverlayMachine = function createOverlayMachine(options) { | |
| var hideOverlay = options.hideOverlay, | |
| showOverlay = options.showOverlay; | |
| var overlayMachine = createMachine({ | |
| initial: "hidden", | |
| context: { | |
| level: "error", | |
| messages: [], | |
| messageSource: "build" | |
| }, | |
| states: { | |
| hidden: { | |
| on: { | |
| BUILD_ERROR: { | |
| target: "displayBuildError", | |
| actions: ["setMessages", "showOverlay"] | |
| }, | |
| RUNTIME_ERROR: { | |
| target: "displayRuntimeError", | |
| actions: ["setMessages", "showOverlay"] | |
| } | |
| } | |
| }, | |
| displayBuildError: { | |
| on: { | |
| DISMISS: { | |
| target: "hidden", | |
| actions: ["dismissMessages", "hideOverlay"] | |
| }, | |
| BUILD_ERROR: { | |
| target: "displayBuildError", | |
| actions: ["appendMessages", "showOverlay"] | |
| } | |
| } | |
| }, | |
| displayRuntimeError: { | |
| on: { | |
| DISMISS: { | |
| target: "hidden", | |
| actions: ["dismissMessages", "hideOverlay"] | |
| }, | |
| RUNTIME_ERROR: { | |
| target: "displayRuntimeError", | |
| actions: ["appendMessages", "showOverlay"] | |
| }, | |
| BUILD_ERROR: { | |
| target: "displayBuildError", | |
| actions: ["setMessages", "showOverlay"] | |
| } | |
| } | |
| } | |
| } | |
| }, { | |
| actions: { | |
| dismissMessages: function dismissMessages() { | |
| return { | |
| messages: [], | |
| level: "error", | |
| messageSource: "build" | |
| }; | |
| }, | |
| appendMessages: function appendMessages(context, event) { | |
| return { | |
| messages: context.messages.concat(event.messages), | |
| level: event.level || context.level, | |
| messageSource: event.type === "RUNTIME_ERROR" ? "runtime" : "build" | |
| }; | |
| }, | |
| setMessages: function setMessages(context, event) { | |
| return { | |
| messages: event.messages, | |
| level: event.level || context.level, | |
| messageSource: event.type === "RUNTIME_ERROR" ? "runtime" : "build" | |
| }; | |
| }, | |
| hideOverlay: hideOverlay, | |
| showOverlay: showOverlay | |
| } | |
| }); | |
| return overlayMachine; | |
| }; | |
| export default createOverlayMachine; |
Xet Storage Details
- Size:
- 2.79 kB
- Xet hash:
- 4aef7eb4e50fdedbbe5f0b6d484e1a0a5251836cce591085789d00b83f2a41cb
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.