diff options
| author | darkuss <darkussdelta@gmail.com> | 2026-08-22 01:58:37 +0200 |
|---|---|---|
| committer | darkuss <darkussdelta@gmail.com> | 2026-08-22 01:58:37 +0200 |
| commit | 8f32fd58cafe677c07d9ed9fff84f6e255156d37 (patch) | |
| tree | a5de06ffb2c0a8b878c8a563ec8cee692efc98ac /src/taskbar/index.tsx | |
| parent | 5ac62cc1a4d9a5f50ea26d5bc1afb0fbf95da23c (diff) | |
holy shit i'm finally done
Diffstat (limited to 'src/taskbar/index.tsx')
| -rw-r--r-- | src/taskbar/index.tsx | 44 |
1 files changed, 29 insertions, 15 deletions
diff --git a/src/taskbar/index.tsx b/src/taskbar/index.tsx index 34377c2..3752e52 100644 --- a/src/taskbar/index.tsx +++ b/src/taskbar/index.tsx @@ -1,25 +1,39 @@ import { StartButton } from "./start" import { Time } from "./time" +import { Task, taskManager } from "$/desktop" +import { useCallback } from "preact/hooks" +import { useLiveSignal } from "@preact/signals/utils"; + +function TaskButton({ task }: TaskButton.Props) { + const source = useLiveSignal(task.source); + const title = useLiveSignal(task.title); + + const handleClick = useCallback(() => { + task.window.minimized.value = !task.window.minimized.value; + taskManager.focusWindow(task) + }, []) + + return <li> + <button onClick={handleClick}> + <img src={`/assets/${source.value.value.type}.png`} /> + <div>{title.value.value ?? "[404 Title Not Found]"}</div> + </button> + </li> +} + +namespace TaskButton { + export type Props = { + task: Task + } +} export function Taskbar() { + const sortedTasks = [...taskManager.tasks.value.value].sort((a, b) => a.id - b.id); + return <nav> <StartButton /> <ul> - <li> - <button> - README.txt - </button> - </li> - <li> - <button> - KEYGEn - </button> - </li> - <li> - <button> - Chat - </button> - </li> + { sortedTasks.map(task => <TaskButton task={task}/>)} </ul> <Time /> <div id="netpunk_descender"></div> |
