initial commit
This commit is contained in:
commit
5449e361d5
46 changed files with 8309 additions and 0 deletions
11
src/platform/anim.ts
Normal file
11
src/platform/anim.ts
Normal file
|
@ -0,0 +1,11 @@
|
|||
import { createContext, useContext, type Accessor } from "solid-js";
|
||||
|
||||
export type HeroSource = {[key: string | symbol | number]: HTMLElement | undefined}
|
||||
|
||||
const HeroSourceContext = createContext<Accessor<HeroSource>>(() => ({}))
|
||||
|
||||
export const HeroSourceProvider = HeroSourceContext.Provider
|
||||
|
||||
export function useHeroSource() {
|
||||
return useContext(HeroSourceContext)
|
||||
}
|
42
src/platform/timesrc.ts
Normal file
42
src/platform/timesrc.ts
Normal file
|
@ -0,0 +1,42 @@
|
|||
import {
|
||||
Accessor,
|
||||
createContext,
|
||||
createRenderEffect,
|
||||
createSignal,
|
||||
onCleanup,
|
||||
untrack,
|
||||
useContext,
|
||||
} from "solid-js";
|
||||
|
||||
const TimeSourceContext = createContext<Accessor<Date>>();
|
||||
|
||||
export const TimeSourceProvider = TimeSourceContext.Provider;
|
||||
|
||||
export function createTimeSource() {
|
||||
let id: number | undefined;
|
||||
const [get, set] = createSignal(new Date());
|
||||
|
||||
createRenderEffect(() =>
|
||||
untrack(() => {
|
||||
id = setTimeout(() => {
|
||||
set(new Date());
|
||||
}, 30 * 1000);
|
||||
}),
|
||||
);
|
||||
|
||||
onCleanup(() => {
|
||||
if (typeof id !== "undefined") {
|
||||
clearInterval(id);
|
||||
}
|
||||
});
|
||||
|
||||
return get;
|
||||
}
|
||||
|
||||
export function useTimeSource() {
|
||||
return (
|
||||
useContext(TimeSourceContext) ??
|
||||
(console.warn("useTimeSource() is used but no source is provided"),
|
||||
createTimeSource())
|
||||
);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue