Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 1x 51x 51x 10x 10x 51x | import { atom } from "nanostores";
import { createNanoEvents } from "nanoevents";
import { Slice } from "../slice";
export class ToolSlice extends Slice {
static readonly sliceKey = "tool";
$activeTool = atom<"select" | "pencil" | "erase" | "pan">("select");
private events = createNanoEvents<{ toolChanged: () => void }>();
setTool(tool: "select" | "pencil" | "erase" | "pan"): void {
this.$activeTool.set(tool);
this.events.emit("toolChanged");
}
onToolChanged(cb: () => void): () => void {
return this.events.on("toolChanged", cb);
}
}
|