|
|
@@ -0,0 +1,34 @@
|
|
|
+import { DialogSelect, type DialogSelectOption } from "@tui/ui/dialog-select"
|
|
|
+import { createResource, createMemo } from "solid-js"
|
|
|
+import { useDialog } from "@tui/ui/dialog"
|
|
|
+import { useSDK } from "@tui/context/sdk"
|
|
|
+
|
|
|
+export type DialogSkillProps = {
|
|
|
+ onSelect: (skill: string) => void
|
|
|
+}
|
|
|
+
|
|
|
+export function DialogSkill(props: DialogSkillProps) {
|
|
|
+ const dialog = useDialog()
|
|
|
+ const sdk = useSDK()
|
|
|
+
|
|
|
+ const [skills] = createResource(async () => {
|
|
|
+ const result = await sdk.client.app.skills()
|
|
|
+ return result.data ?? []
|
|
|
+ })
|
|
|
+
|
|
|
+ const options = createMemo<DialogSelectOption<string>[]>(() => {
|
|
|
+ const list = skills() ?? []
|
|
|
+ return list.map((skill) => ({
|
|
|
+ title: skill.name,
|
|
|
+ description: skill.description,
|
|
|
+ value: skill.name,
|
|
|
+ category: "Skills",
|
|
|
+ onSelect: () => {
|
|
|
+ props.onSelect(skill.name)
|
|
|
+ dialog.clear()
|
|
|
+ },
|
|
|
+ }))
|
|
|
+ })
|
|
|
+
|
|
|
+ return <DialogSelect title="Skills" placeholder="Search skills..." options={options()} />
|
|
|
+}
|