From f1b66d6d272e03f7812ac567563db9d4987e8f99 Mon Sep 17 00:00:00 2001
From: Marlon
Date: Mon, 16 Sep 2024 16:53:53 +0200
Subject: [PATCH] Vaardigheden (#17)
* Finished "vaardighedenkompas"
---
index.html | 3 +
src/App.tsx | 25 +-
src/SkillMarked.tsx | 39 +
src/SkillTable.tsx | 104 +++
src/Skills.tsx | 108 +++
src/Table.tsx | 4 +-
src/data.json | 1618 ++++++++++++++++++++++++++++++++++++++---
src/index.css | 56 +-
src/usePersistence.ts | 155 +++-
src/util.ts | 129 +++-
10 files changed, 2083 insertions(+), 158 deletions(-)
create mode 100644 src/SkillMarked.tsx
create mode 100644 src/SkillTable.tsx
create mode 100644 src/Skills.tsx
diff --git a/index.html b/index.html
index c1ed82c..6dec18b 100644
--- a/index.html
+++ b/index.html
@@ -63,6 +63,9 @@
+
+
+
diff --git a/src/App.tsx b/src/App.tsx
index 38a48ae..281a652 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -1,11 +1,24 @@
import Results from './Results';
+import Skills from './Skills';
import Table from './Table';
import usePersistence from './usePersistence';
import { copyLink, saveStateLocal } from './util';
import voha from './voha.jpg';
export default function App() {
- const { state, select, mark, note } = usePersistence();
+ const { state, select, mark, note, selectSkill, markSkill, noteSkill, navigate } = usePersistence();
+
+ if (state.skillMode) {
+ return (
+
+ );
+ }
return (
<>
@@ -35,14 +48,18 @@ export default function App() {
Markeren kan door het vakje rechts te selecteren.
-
Dit mag je gebruiken als je hier bijvoorbeeld extra aandacht aan wilt
besteden of een vraag over hebt.
-
Onder aan de pagina verschijnt een lijst van gemarkeerde items.
+
+ navigate(true)}>
+ Vaardighedenkompas
+
+
+
@@ -55,7 +72,7 @@ export default function App() {
Je kunt ook een link kopiëren en deze ergens veilige bewaren,
of een bestand downloaden en deze op een veilige plek opslaan.
-
+
saveStateLocal(state)}>
diff --git a/src/SkillMarked.tsx b/src/SkillMarked.tsx
new file mode 100644
index 0000000..5382b83
--- /dev/null
+++ b/src/SkillMarked.tsx
@@ -0,0 +1,39 @@
+import { SkillCategory, SkillGroup, State } from './usePersistence';
+
+interface SkillMarkedProps {
+ state: State;
+ mark: (index: number, marked: boolean) => void;
+}
+
+export default function SkillMarked({ state, mark }: SkillMarkedProps) {
+ const items = state.skills
+ .map((skillCategory: SkillCategory) => skillCategory.groups
+ .map((skillGroup: SkillGroup) =>
+ skillGroup.items.map((item) => {
+ if (!item.marked) {
+ return null;
+ }
+
+ return (
+
+ mark(item.index, false)}
+ aria-label="Verwijderen"
+ />
+ {item.name}
+
+ );
+ })
+ ))
+ .flat()
+ .filter((item) => item !== null);
+
+ if (items.length === 0) {
+ return Nog geen gemarkeerde vaardigheden
;
+ }
+
+ return ;
+}
diff --git a/src/SkillTable.tsx b/src/SkillTable.tsx
new file mode 100644
index 0000000..7b6f974
--- /dev/null
+++ b/src/SkillTable.tsx
@@ -0,0 +1,104 @@
+import { Fragment } from 'preact/jsx-runtime';
+import { State } from './usePersistence';
+
+interface SkillTableProps {
+ state: State;
+ select: (index: number, value: boolean|null) => void;
+ mark: (index: number, marked: boolean) => void;
+}
+
+export default function SkillTable({ state, select, mark }: SkillTableProps) {
+ return (
+
+ );
+}
diff --git a/src/Skills.tsx b/src/Skills.tsx
new file mode 100644
index 0000000..ec0d243
--- /dev/null
+++ b/src/Skills.tsx
@@ -0,0 +1,108 @@
+import SkillMarked from './SkillMarked';
+import SkillTable from './SkillTable';
+import { State } from './usePersistence';
+import { copyLink, saveStateLocal } from './util';
+import voha from './voha.jpg';
+
+interface SkillsProps {
+ state: State;
+ navigate: (skillMode: boolean) => void;
+ selectSkill: (index: number, value: boolean|null) => void;
+ markSkill: (index: number, marked: boolean) => void;
+ noteSkill: (content: string) => void;
+}
+
+export default function Skills({ state, selectSkill, markSkill, navigate, noteSkill }: SkillsProps) {
+ return (
+ <>
+
+
+
+
Legenda
+
+ O
= Onvoldoende ervaring
+ V
= Voldoende ervaring
+
+
+ B
= Basisvaardigheid
+ F
= Facultatieve vaardigheid
+
+
+ *
= Ten tijde van de inventarisatie om het huidige overzicht in te delen,
+ ontbrak het onderdeel 'palliatieve en terminale zorg' in dit overzicht en is dus
+ niet meegenomen in de indeling. In 2024 vindt een herijking van deze lijst plaats,
+ dan zal het onderdeel 'palliatieve en terminale zorg' meegenomen worden.
+
+
+
+
+ navigate(false)}>
+ Ervaringskompas
+
+
+
+
+
+ Gemarkeerde vaardigheden
+
+
+
+
+
+ Notities
+