From 118080769648c5f935fb92f391241653d3039376 Mon Sep 17 00:00:00 2001 From: taniaholst Date: Thu, 2 Jun 2022 12:52:58 +0200 Subject: [PATCH 01/13] update turbo --- package-lock.json | 322 ++++++++++++++++++++++++++++++++++++++++------ package.json | 2 +- 2 files changed, 282 insertions(+), 42 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5c5392cf4a..7e3323f179 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "frontend/*" ], "devDependencies": { - "turbo": "^1.2.5" + "turbo": "^1.2.15" } }, "frontend/mulighetsrommet-api-client": { @@ -24479,44 +24479,199 @@ } }, "node_modules/turbo": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/turbo/-/turbo-1.2.5.tgz", - "integrity": "sha512-KXk5BGCaiSSXhtorrLUILB3OTqZ/uruIi0ggb0jSp55ZDSS+G/4OANw7y5QuRjizCpjwunb47AAOox/2Zn2nbA==", + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/turbo/-/turbo-1.2.15.tgz", + "integrity": "sha512-f1wqVKkUJaCZbtRcewuC6teGU317ktKfVTzweFh+E88fMun6ApAscuNsYEyS78pfYgQnQ3n024r9PvPORlik0w==", "dev": true, "hasInstallScript": true, - "license": "MPL-2.0", "bin": { "turbo": "bin/turbo" }, "optionalDependencies": { - "turbo-darwin-64": "1.2.5", - "turbo-darwin-arm64": "1.2.5", - "turbo-freebsd-64": "1.2.5", - "turbo-freebsd-arm64": "1.2.5", - "turbo-linux-32": "1.2.5", - "turbo-linux-64": "1.2.5", - "turbo-linux-arm": "1.2.5", - "turbo-linux-arm64": "1.2.5", - "turbo-linux-mips64le": "1.2.5", - "turbo-linux-ppc64le": "1.2.5", - "turbo-windows-32": "1.2.5", - "turbo-windows-64": "1.2.5" + "turbo-darwin-64": "1.2.15", + "turbo-darwin-arm64": "1.2.15", + "turbo-freebsd-64": "1.2.15", + "turbo-freebsd-arm64": "1.2.15", + "turbo-linux-32": "1.2.15", + "turbo-linux-64": "1.2.15", + "turbo-linux-arm": "1.2.15", + "turbo-linux-arm64": "1.2.15", + "turbo-linux-mips64le": "1.2.15", + "turbo-linux-ppc64le": "1.2.15", + "turbo-windows-32": "1.2.15", + "turbo-windows-64": "1.2.15", + "turbo-windows-arm64": "1.2.15" } }, "node_modules/turbo-darwin-64": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/turbo-darwin-64/-/turbo-darwin-64-1.2.5.tgz", - "integrity": "sha512-AjMEF8hlA9vy1gXLHBruqgO42s0M0rKKZLQPM239wli5lKEprmxd8WMSjd9YmxRflS+/fwrXfjVl0QRhHjDIww==", + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/turbo-darwin-64/-/turbo-darwin-64-1.2.15.tgz", + "integrity": "sha512-7Cdl5Bljvr8H6aFJkAvdxSK1JzuP6bqp2VLaRmqFTXUZAYUioDgPqMyTkh/O2uy8d7I8vdCmORnQ4DEQGxWbwA==", "cpu": [ "x64" ], "dev": true, - "license": "MPL-2.0", "optional": true, "os": [ "darwin" ] }, + "node_modules/turbo-darwin-arm64": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/turbo-darwin-arm64/-/turbo-darwin-arm64-1.2.15.tgz", + "integrity": "sha512-AskN5ImdgtUjL4ugTxxpmo7WSRUYB7P1P+i1UcD4CKC316IR7wkuEBw7UNCoLrq+W0uT4UvM5r/vL2RSDJKmEQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/turbo-freebsd-64": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/turbo-freebsd-64/-/turbo-freebsd-64-1.2.15.tgz", + "integrity": "sha512-6+rN9yeV27YjGT1fdDYHhku5lPXg104nHGmg5LUaXf3HB10vH561G8PQweRoMCnuIJOnfAbLChg9T4rwr/6yxw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/turbo-freebsd-arm64": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/turbo-freebsd-arm64/-/turbo-freebsd-arm64-1.2.15.tgz", + "integrity": "sha512-jhxouEOe12JdyslShTLAHvVyI+GH6ju8SGjCFga4+VlDdyZp7rMJ97ocX2KtpGKqJF6C5Dqb09EHt6Qw/TpTeQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/turbo-linux-32": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/turbo-linux-32/-/turbo-linux-32-1.2.15.tgz", + "integrity": "sha512-SVEGhTwvQy8SLqYsFq6zrMxnlgaiPbOL8ZPhPOQgJzZtmjGAYP6OqHCdnB/OvMYxbENFo+NtIIviaQowZLm/wQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/turbo-linux-64": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/turbo-linux-64/-/turbo-linux-64-1.2.15.tgz", + "integrity": "sha512-74Jpm7XGObG06ZjvnYJmCFAUPhEC/xCbKL7Yapg2OXGhyMPjzfLD/dRRpFJK2AC3+hsOTn0KGKhUxox222fpJg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/turbo-linux-arm": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/turbo-linux-arm/-/turbo-linux-arm-1.2.15.tgz", + "integrity": "sha512-PEo9z31yJiqkIhy1dUyHxqSLMOn04uMT4PIli+qSA5acBy4vVBqpEqEppH7NJfh0DCPyAxLvyjc1+fkyFUYoCA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/turbo-linux-arm64": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/turbo-linux-arm64/-/turbo-linux-arm64-1.2.15.tgz", + "integrity": "sha512-VLrqbbDpONbG0tQeXKpOIT0NHI0ZOyERVWCwMqoiUbcqkXzadsQGZCri2mIpneQ2Ogwn474EEL4yxecgLfmKxg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/turbo-linux-mips64le": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/turbo-linux-mips64le/-/turbo-linux-mips64le-1.2.15.tgz", + "integrity": "sha512-glYQ6lPL3sqLmEpHBtyoI0XUvTlTIjF7syv612GHyYVNSHYStMSzgQ3KRhJiElKOd2lr1W4zEVs2F9Z9BN+mXQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/turbo-linux-ppc64le": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/turbo-linux-ppc64le/-/turbo-linux-ppc64le-1.2.15.tgz", + "integrity": "sha512-rq0XbdhIA0lP/r2IjwN42RzI2vXC0K7gafU3GmIxTm4FGQSmmzosONlOODJ/gCa2o8XuheznjM15CRsS2WqpDA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/turbo-windows-32": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/turbo-windows-32/-/turbo-windows-32-1.2.15.tgz", + "integrity": "sha512-4BnOW8Q5Mwf/4pEnlh24zYg8Su5dzdfifTGPqIOcNlNIAAFHhn24iH3/b2ByhanOnL6xRNKZg0qJsUFoJmu41g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/turbo-windows-64": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/turbo-windows-64/-/turbo-windows-64-1.2.15.tgz", + "integrity": "sha512-9A1q+rvU1VSmbYfQ5YjGFUhAjcrxBIPWk3/jUfHXSx4WSi350UUgpI701Hmxfwa7vJPeGyDWuo48ZDuLlrsvSg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/turbo-windows-arm64": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/turbo-windows-arm64/-/turbo-windows-arm64-1.2.15.tgz", + "integrity": "sha512-iklGISuvh6Jp5Hir7CtnVVGtaQPiwqCnxrg37FwWPut2l0Rwplyxg6APtU9bgTrHIGF+jmpSdTTwrpmntuBvkA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", @@ -43968,29 +44123,114 @@ } }, "turbo": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/turbo/-/turbo-1.2.5.tgz", - "integrity": "sha512-KXk5BGCaiSSXhtorrLUILB3OTqZ/uruIi0ggb0jSp55ZDSS+G/4OANw7y5QuRjizCpjwunb47AAOox/2Zn2nbA==", - "dev": true, - "requires": { - "turbo-darwin-64": "1.2.5", - "turbo-darwin-arm64": "1.2.5", - "turbo-freebsd-64": "1.2.5", - "turbo-freebsd-arm64": "1.2.5", - "turbo-linux-32": "1.2.5", - "turbo-linux-64": "1.2.5", - "turbo-linux-arm": "1.2.5", - "turbo-linux-arm64": "1.2.5", - "turbo-linux-mips64le": "1.2.5", - "turbo-linux-ppc64le": "1.2.5", - "turbo-windows-32": "1.2.5", - "turbo-windows-64": "1.2.5" + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/turbo/-/turbo-1.2.15.tgz", + "integrity": "sha512-f1wqVKkUJaCZbtRcewuC6teGU317ktKfVTzweFh+E88fMun6ApAscuNsYEyS78pfYgQnQ3n024r9PvPORlik0w==", + "dev": true, + "requires": { + "turbo-darwin-64": "1.2.15", + "turbo-darwin-arm64": "1.2.15", + "turbo-freebsd-64": "1.2.15", + "turbo-freebsd-arm64": "1.2.15", + "turbo-linux-32": "1.2.15", + "turbo-linux-64": "1.2.15", + "turbo-linux-arm": "1.2.15", + "turbo-linux-arm64": "1.2.15", + "turbo-linux-mips64le": "1.2.15", + "turbo-linux-ppc64le": "1.2.15", + "turbo-windows-32": "1.2.15", + "turbo-windows-64": "1.2.15", + "turbo-windows-arm64": "1.2.15" } }, "turbo-darwin-64": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/turbo-darwin-64/-/turbo-darwin-64-1.2.5.tgz", - "integrity": "sha512-AjMEF8hlA9vy1gXLHBruqgO42s0M0rKKZLQPM239wli5lKEprmxd8WMSjd9YmxRflS+/fwrXfjVl0QRhHjDIww==", + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/turbo-darwin-64/-/turbo-darwin-64-1.2.15.tgz", + "integrity": "sha512-7Cdl5Bljvr8H6aFJkAvdxSK1JzuP6bqp2VLaRmqFTXUZAYUioDgPqMyTkh/O2uy8d7I8vdCmORnQ4DEQGxWbwA==", + "dev": true, + "optional": true + }, + "turbo-darwin-arm64": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/turbo-darwin-arm64/-/turbo-darwin-arm64-1.2.15.tgz", + "integrity": "sha512-AskN5ImdgtUjL4ugTxxpmo7WSRUYB7P1P+i1UcD4CKC316IR7wkuEBw7UNCoLrq+W0uT4UvM5r/vL2RSDJKmEQ==", + "dev": true, + "optional": true + }, + "turbo-freebsd-64": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/turbo-freebsd-64/-/turbo-freebsd-64-1.2.15.tgz", + "integrity": "sha512-6+rN9yeV27YjGT1fdDYHhku5lPXg104nHGmg5LUaXf3HB10vH561G8PQweRoMCnuIJOnfAbLChg9T4rwr/6yxw==", + "dev": true, + "optional": true + }, + "turbo-freebsd-arm64": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/turbo-freebsd-arm64/-/turbo-freebsd-arm64-1.2.15.tgz", + "integrity": "sha512-jhxouEOe12JdyslShTLAHvVyI+GH6ju8SGjCFga4+VlDdyZp7rMJ97ocX2KtpGKqJF6C5Dqb09EHt6Qw/TpTeQ==", + "dev": true, + "optional": true + }, + "turbo-linux-32": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/turbo-linux-32/-/turbo-linux-32-1.2.15.tgz", + "integrity": "sha512-SVEGhTwvQy8SLqYsFq6zrMxnlgaiPbOL8ZPhPOQgJzZtmjGAYP6OqHCdnB/OvMYxbENFo+NtIIviaQowZLm/wQ==", + "dev": true, + "optional": true + }, + "turbo-linux-64": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/turbo-linux-64/-/turbo-linux-64-1.2.15.tgz", + "integrity": "sha512-74Jpm7XGObG06ZjvnYJmCFAUPhEC/xCbKL7Yapg2OXGhyMPjzfLD/dRRpFJK2AC3+hsOTn0KGKhUxox222fpJg==", + "dev": true, + "optional": true + }, + "turbo-linux-arm": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/turbo-linux-arm/-/turbo-linux-arm-1.2.15.tgz", + "integrity": "sha512-PEo9z31yJiqkIhy1dUyHxqSLMOn04uMT4PIli+qSA5acBy4vVBqpEqEppH7NJfh0DCPyAxLvyjc1+fkyFUYoCA==", + "dev": true, + "optional": true + }, + "turbo-linux-arm64": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/turbo-linux-arm64/-/turbo-linux-arm64-1.2.15.tgz", + "integrity": "sha512-VLrqbbDpONbG0tQeXKpOIT0NHI0ZOyERVWCwMqoiUbcqkXzadsQGZCri2mIpneQ2Ogwn474EEL4yxecgLfmKxg==", + "dev": true, + "optional": true + }, + "turbo-linux-mips64le": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/turbo-linux-mips64le/-/turbo-linux-mips64le-1.2.15.tgz", + "integrity": "sha512-glYQ6lPL3sqLmEpHBtyoI0XUvTlTIjF7syv612GHyYVNSHYStMSzgQ3KRhJiElKOd2lr1W4zEVs2F9Z9BN+mXQ==", + "dev": true, + "optional": true + }, + "turbo-linux-ppc64le": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/turbo-linux-ppc64le/-/turbo-linux-ppc64le-1.2.15.tgz", + "integrity": "sha512-rq0XbdhIA0lP/r2IjwN42RzI2vXC0K7gafU3GmIxTm4FGQSmmzosONlOODJ/gCa2o8XuheznjM15CRsS2WqpDA==", + "dev": true, + "optional": true + }, + "turbo-windows-32": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/turbo-windows-32/-/turbo-windows-32-1.2.15.tgz", + "integrity": "sha512-4BnOW8Q5Mwf/4pEnlh24zYg8Su5dzdfifTGPqIOcNlNIAAFHhn24iH3/b2ByhanOnL6xRNKZg0qJsUFoJmu41g==", + "dev": true, + "optional": true + }, + "turbo-windows-64": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/turbo-windows-64/-/turbo-windows-64-1.2.15.tgz", + "integrity": "sha512-9A1q+rvU1VSmbYfQ5YjGFUhAjcrxBIPWk3/jUfHXSx4WSi350UUgpI701Hmxfwa7vJPeGyDWuo48ZDuLlrsvSg==", + "dev": true, + "optional": true + }, + "turbo-windows-arm64": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/turbo-windows-arm64/-/turbo-windows-arm64-1.2.15.tgz", + "integrity": "sha512-iklGISuvh6Jp5Hir7CtnVVGtaQPiwqCnxrg37FwWPut2l0Rwplyxg6APtU9bgTrHIGF+jmpSdTTwrpmntuBvkA==", "dev": true, "optional": true }, diff --git a/package.json b/package.json index 088585b71a..da1c48c14b 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "frontend/*" ], "devDependencies": { - "turbo": "^1.2.5" + "turbo": "^1.2.15" }, "packageManager": "npm@8.5.2" } From 24e208e857f8abcda93dbac81ab7ff08ea91d8c1 Mon Sep 17 00:00:00 2001 From: taniaholst Date: Fri, 3 Jun 2022 13:16:18 +0200 Subject: [PATCH 02/13] tc-122 la inn info til detaljvisning --- .../mulighetsrommet-cms/schemas/schema.js | 8 - .../schemas/tiltaksgjennomforing.js | 1 + .../schemas/tiltakstype.js | 21 ++- .../package.json | 3 +- .../src/components/sidemeny/Sidemeny.less | 4 + .../components/sidemeny/SidemenyDetaljer.tsx | 23 ++- .../components/tabs/TiltaksdetaljerFane.less | 11 +- .../components/tabs/TiltaksdetaljerFane.tsx | 49 ++++-- .../useTiltaksgjennomforingDetaljer.ts | 40 +++++ .../useTiltaksgjennomforingTabell.ts | 22 +++ .../src/layouts/MainView.less | 8 - .../layouts/TiltaksgjennomforingsHeader.less | 8 + .../layouts/TiltaksgjennomforingsHeader.tsx | 36 ++--- ...akstype-tiltaksgjennomforing-detaljer.less | 3 +- .../ViewTiltakstypeDetaljer.tsx | 140 ++++++++++++------ .../ViewTiltakstypeOversikt.tsx | 2 +- package-lock.json | 17 ++- 17 files changed, 266 insertions(+), 130 deletions(-) create mode 100644 frontend/mulighetsrommet-veileder-flate/src/hooks/tiltaksgjennomforing/useTiltaksgjennomforingDetaljer.ts create mode 100644 frontend/mulighetsrommet-veileder-flate/src/hooks/tiltaksgjennomforing/useTiltaksgjennomforingTabell.ts delete mode 100644 frontend/mulighetsrommet-veileder-flate/src/layouts/MainView.less create mode 100644 frontend/mulighetsrommet-veileder-flate/src/layouts/TiltaksgjennomforingsHeader.less diff --git a/frontend/mulighetsrommet-cms/schemas/schema.js b/frontend/mulighetsrommet-cms/schemas/schema.js index 795166a783..319dbc5175 100644 --- a/frontend/mulighetsrommet-cms/schemas/schema.js +++ b/frontend/mulighetsrommet-cms/schemas/schema.js @@ -1,21 +1,13 @@ -// First, we must import the schema creator import createSchema from "part:@sanity/base/schema-creator"; -// Then import schema types from any plugins that might expose them import schemaTypes from "all:part:@sanity/base/schema-type"; -// We import object and document schemas import blockContent from "./blockContent"; import tiltakstype from "./tiltakstype"; import tiltaksgjennomforing from "./tiltaksgjennomforing"; import arrangor from "./arrangor"; import kontaktperson from "./kontaktperson"; -// Then we give our schema to the builder and provide the result to Sanity export default createSchema({ - // We name our schema name: "default", - - // Then proceed to concatenate our document type - // to the ones provided by any plugins that are installed types: schemaTypes.concat([ // The following are document types which will appear // in the studio. diff --git a/frontend/mulighetsrommet-cms/schemas/tiltaksgjennomforing.js b/frontend/mulighetsrommet-cms/schemas/tiltaksgjennomforing.js index c7c1c9daf5..24d9441329 100644 --- a/frontend/mulighetsrommet-cms/schemas/tiltaksgjennomforing.js +++ b/frontend/mulighetsrommet-cms/schemas/tiltaksgjennomforing.js @@ -198,6 +198,7 @@ export default { }, ], }, + //TODO skal kunne legge til flere tiltaksansvarlige { name: "kontaktinfoTiltaksansvarlig", title: "Tiltaksansvarlig", diff --git a/frontend/mulighetsrommet-cms/schemas/tiltakstype.js b/frontend/mulighetsrommet-cms/schemas/tiltakstype.js index 32d58e4213..a2837cfa50 100644 --- a/frontend/mulighetsrommet-cms/schemas/tiltakstype.js +++ b/frontend/mulighetsrommet-cms/schemas/tiltakstype.js @@ -23,7 +23,6 @@ export default { description: "Hentes fra Arena, usikker på hvordan denne skal vises her", type: "blockContent", }, - // Sammendrag/Infoboks { name: "innsatsgruppe", title: "Innsatsgruppe", @@ -31,10 +30,19 @@ export default { options: { layout: "dropdown", list: [ - { title: "Standardinnsats", value: "staninn" }, - { title: "Situasjonsbestemt innsats", value: "sitinn" }, - { title: "Spesielt tilpasset innsats", value: "speinn" }, - { title: "Varig tilpasset innsats", value: "varinn" }, + { title: "Standardinnsats", value: "Standardinnsats" }, + { + title: "Situasjonsbestemt innsats", + value: "Situasjonsbestemt innsats", + }, + { + title: "Spesielt tilpasset innsats", + value: "Spesielt tilpasset innsats", + }, + { + title: "Varig tilpasset innsats", + value: "Varig tilpasset innsats", + }, ], }, validation: (Rule) => Rule.required(), @@ -44,6 +52,7 @@ export default { title: "Varighet", type: "string", }, + //TODO skal kunne legge til flere lenker og filer { name: "regelverkFil", title: "Regelverk fil", @@ -72,7 +81,6 @@ export default { title: "For hvem", type: "blockContent", }, - { name: "detaljerOgInnholdInfoboks", title: "Detaljer og innhold - infoboks", @@ -85,7 +93,6 @@ export default { title: "Detaljer og innhold", type: "blockContent", }, - { name: "pameldingOgVarighetInfoboks", title: "Påmelding og varighet - infoboks", diff --git a/frontend/mulighetsrommet-veileder-flate/package.json b/frontend/mulighetsrommet-veileder-flate/package.json index c49e04238d..ad14169065 100644 --- a/frontend/mulighetsrommet-veileder-flate/package.json +++ b/frontend/mulighetsrommet-veileder-flate/package.json @@ -35,6 +35,7 @@ "@navikt/fnrvalidator": "^1.2.0", "@navikt/frontendlogger": "^2.0.0", "@navikt/navspa": "^5.0.1", + "@portabletext/react": "^1.0.6", "@reduxjs/toolkit": "^1.6.2", "@sanity/cli": "^2.30.0", "@sanity/client": "^3.3.0", @@ -52,9 +53,9 @@ "lodash.throttle": "^4.1.1", "mem": "^9.0.2", "mulighetsrommet-api-client": "*", - "node-forge": "^1.3.1", "next": "^12.1.6", "next-sanity": "^0.5.2", + "node-forge": "^1.3.1", "nth-check": "^2.0.1", "prop-types": "^15.7.2", "react": "^17.0.2", diff --git a/frontend/mulighetsrommet-veileder-flate/src/components/sidemeny/Sidemeny.less b/frontend/mulighetsrommet-veileder-flate/src/components/sidemeny/Sidemeny.less index 1b7920a114..1d13073fce 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/components/sidemeny/Sidemeny.less +++ b/frontend/mulighetsrommet-veileder-flate/src/components/sidemeny/Sidemeny.less @@ -4,6 +4,10 @@ display: flex; justify-content: space-between; margin-bottom: 1rem; + column-gap: 1rem; + } + span { + text-align: end; } } } diff --git a/frontend/mulighetsrommet-veileder-flate/src/components/sidemeny/SidemenyDetaljer.tsx b/frontend/mulighetsrommet-veileder-flate/src/components/sidemeny/SidemenyDetaljer.tsx index a2b3f35e1d..c4321cb17e 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/components/sidemeny/SidemenyDetaljer.tsx +++ b/frontend/mulighetsrommet-veileder-flate/src/components/sidemeny/SidemenyDetaljer.tsx @@ -2,15 +2,14 @@ import React from 'react'; import { Panel } from '@navikt/ds-react'; import './Sidemeny.less'; import Kopiknapp from '../kopiknapp/Kopiknapp'; -import { Tiltakskode } from '../../../../mulighetsrommet-api-client'; interface SidemenyDetaljerProps { tiltaksnummer: string; - tiltakstype: Tiltakskode; + tiltakstype: string; + beskrivelse?: string; arrangor: string; - innsatsgruppe: number | null; - oppstartsdato: string | null; - beskrivelse: string; + innsatsgruppe: string | null; + oppstartsdato?: string | null; } const SidemenyDetaljer = ({ @@ -25,35 +24,35 @@ const SidemenyDetaljer = ({ <>
- Tiltaksnummer + Tiltaksnummer {tiltaksnummer}
- Tiltakstype + Tiltakstype {tiltakstype}
- Arrangør + Arrangør {arrangor}
- Innsatsgruppe + Innsatsgruppe {innsatsgruppe}
- Oppstart + Oppstart {oppstartsdato}
- Beskrivelse - {beskrivelse} + Regelverk + {beskrivelse}
diff --git a/frontend/mulighetsrommet-veileder-flate/src/components/tabs/TiltaksdetaljerFane.less b/frontend/mulighetsrommet-veileder-flate/src/components/tabs/TiltaksdetaljerFane.less index 992a307216..84290408ef 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/components/tabs/TiltaksdetaljerFane.less +++ b/frontend/mulighetsrommet-veileder-flate/src/components/tabs/TiltaksdetaljerFane.less @@ -9,7 +9,8 @@ flex-direction: row; border-bottom: 1px solid var(--navds-semantic-color-border-muted); margin-bottom: 2rem; - gap: 1%; + gap: 5%; + justify-content: start; button { background-color: transparent; @@ -23,7 +24,7 @@ } .btn__tab { - width: 6rem; + width: fit-content; } button[data-state='active'] { @@ -32,4 +33,10 @@ } } } + + @media (max-width: 1200px) { + .fane__liste { + justify-content: space-between; + } + } } diff --git a/frontend/mulighetsrommet-veileder-flate/src/components/tabs/TiltaksdetaljerFane.tsx b/frontend/mulighetsrommet-veileder-flate/src/components/tabs/TiltaksdetaljerFane.tsx index 38e602319f..6f02060a46 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/components/tabs/TiltaksdetaljerFane.tsx +++ b/frontend/mulighetsrommet-veileder-flate/src/components/tabs/TiltaksdetaljerFane.tsx @@ -1,10 +1,28 @@ import React from 'react'; import './TiltaksdetaljerFane.less'; -import { Tabs } from '@navikt/ds-react'; +import { Alert, Tabs } from '@navikt/ds-react'; +import { PortableText } from '@portabletext/react'; -const TiltaksdetaljerFane2 = () => { - const faneoverskrifter = ['Om kurset', 'Detaljer', 'Påmelding', 'Innhold', 'Varighet', 'Statistikk']; +interface TiltaksdetaljerFaneProps { + forHvemAlert: string; + detaljerOgInnholdAlert: string; + pameldingOgVarighetAlert: string; + forHvem: any; + detaljerOgInnhold: any; + pameldingOgVarighet: any; + kontaktinfo: any; +} +const TiltaksdetaljerFane = ({ + forHvemAlert, + detaljerOgInnholdAlert, + pameldingOgVarighetAlert, + forHvem, + detaljerOgInnhold, + pameldingOgVarighet, + kontaktinfo, +}: TiltaksdetaljerFaneProps) => { + const faneoverskrifter = ['For hvem', 'Detaljer og innhold', 'Påmelding og varighet', 'Kontaktinfo', 'Innsikt']; return ( @@ -12,15 +30,24 @@ const TiltaksdetaljerFane2 = () => { ))} - - Om kurset - Detaljer - Påmelding - Innhold - Varighet - Statistikk + + {forHvemAlert ? {forHvemAlert} : <>} + + + + {detaljerOgInnholdAlert ? {detaljerOgInnholdAlert} : <>} + + + + {pameldingOgVarighetAlert ? {pameldingOgVarighetAlert} : <>} + + + + + + Innsikt ); }; -export default TiltaksdetaljerFane2; +export default TiltaksdetaljerFane; diff --git a/frontend/mulighetsrommet-veileder-flate/src/hooks/tiltaksgjennomforing/useTiltaksgjennomforingDetaljer.ts b/frontend/mulighetsrommet-veileder-flate/src/hooks/tiltaksgjennomforing/useTiltaksgjennomforingDetaljer.ts new file mode 100644 index 0000000000..26d94137ce --- /dev/null +++ b/frontend/mulighetsrommet-veileder-flate/src/hooks/tiltaksgjennomforing/useTiltaksgjennomforingDetaljer.ts @@ -0,0 +1,40 @@ +import { useQuery } from 'react-query'; +import { MulighetsrommetService, Tiltaksgjennomforing } from 'mulighetsrommet-api-client'; +import { QueryKeys } from '../../core/api/QueryKeys'; +import { sanityClient } from '../../sanityClient'; + +export default function useTiltaksgjennomforingDetaljer(id: number) { + return useQuery([QueryKeys.Tiltaksgjennomforinger, id], () => + sanityClient.fetch(`*[_type == "tiltaksgjennomforing" && tiltaksnummer == ${id}]{ + _id, + tiltaksgjennomforingNavn, + beskrivelse, + tiltaksnummer, + lokasjon, + oppstart, + oppstartsdato, + enheter{ + fylke, + asker, + fredrikstad, + indreOstfold, + lillestrom, + ringsaker, + sarpsborg, + skiptvedtMarker, + steinkjer, + trondheim + }, + faneinnhold{ + forHvemInfoboks, + forHvem, + detaljerOgInnholdInfoboks, + detaljerOgInnhold, + pameldingOgVarighetInfoboks, + pameldingOgVarighet, + }, + kontaktinfoArrangor->, + kontaktinfoTiltaksansvarlig->, + tiltakstype->}`) + ); +} diff --git a/frontend/mulighetsrommet-veileder-flate/src/hooks/tiltaksgjennomforing/useTiltaksgjennomforingTabell.ts b/frontend/mulighetsrommet-veileder-flate/src/hooks/tiltaksgjennomforing/useTiltaksgjennomforingTabell.ts new file mode 100644 index 0000000000..29335b8db5 --- /dev/null +++ b/frontend/mulighetsrommet-veileder-flate/src/hooks/tiltaksgjennomforing/useTiltaksgjennomforingTabell.ts @@ -0,0 +1,22 @@ +import { useQuery } from 'react-query'; +import { Tiltaksgjennomforing } from 'mulighetsrommet-api-client'; +import { QueryKeys } from '../../core/api/QueryKeys'; +import { sanityClient } from '../../sanityClient'; + +export default function useTiltaksgjennomforingTabell() { + return useQuery([QueryKeys.Tiltaksgjennomforinger], () => + sanityClient.fetch( + `*[_type == "tiltaksgjennomforing"]{ + _id, + tiltaksgjennomforingNavn, + enheter, + lokasjon, + oppstart, + oppstartsdato, + tiltaksnummer, + kontaktinfoArrangor->, + tiltakstype-> + }` + ) + ); +} diff --git a/frontend/mulighetsrommet-veileder-flate/src/layouts/MainView.less b/frontend/mulighetsrommet-veileder-flate/src/layouts/MainView.less deleted file mode 100644 index 32f6c6f3e4..0000000000 --- a/frontend/mulighetsrommet-veileder-flate/src/layouts/MainView.less +++ /dev/null @@ -1,8 +0,0 @@ -.mulighetsrommet-veileder-flate { - .tiltaksgjennomforing__subtitle-container { - display: flex; - flex-direction: row; - gap: 10%; - margin-bottom: 2rem; - } -} diff --git a/frontend/mulighetsrommet-veileder-flate/src/layouts/TiltaksgjennomforingsHeader.less b/frontend/mulighetsrommet-veileder-flate/src/layouts/TiltaksgjennomforingsHeader.less new file mode 100644 index 0000000000..fb22decf95 --- /dev/null +++ b/frontend/mulighetsrommet-veileder-flate/src/layouts/TiltaksgjennomforingsHeader.less @@ -0,0 +1,8 @@ +.mulighetsrommet-veileder-flate { + .tiltaksgjennomforing { + &__beskrivelse { + font-size: 22px; + margin-bottom: 3rem; + } + } +} diff --git a/frontend/mulighetsrommet-veileder-flate/src/layouts/TiltaksgjennomforingsHeader.tsx b/frontend/mulighetsrommet-veileder-flate/src/layouts/TiltaksgjennomforingsHeader.tsx index 50eabc06e1..06415527a5 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/layouts/TiltaksgjennomforingsHeader.tsx +++ b/frontend/mulighetsrommet-veileder-flate/src/layouts/TiltaksgjennomforingsHeader.tsx @@ -1,36 +1,24 @@ -import React, { useEffect, useState } from 'react'; -import './MainView.less'; +import React from 'react'; +import './TiltaksgjennomforingsHeader.less'; import { Heading } from '@navikt/ds-react'; import { kebabCase } from '../utils/Utils'; -import { sanityClient } from '../sanityClient'; interface TiltaksgjennomforingsHeaderProps { - tiltakstype: string; - arrangor?: string; + tiltaksgjennomforingsnavn: string; + beskrivelse: string; } -function TiltaksgjennomforingsHeader({ tiltakstype, arrangor }: TiltaksgjennomforingsHeaderProps) { - const [gjennomforing, setGjennomforing] = useState(null); - - useEffect(() => { - sanityClient.fetch(`*[_type == "tiltaksgjennomforing"]`).then(data => setGjennomforing(data)); - }, []); - +function TiltaksgjennomforingsHeader({ tiltaksgjennomforingsnavn, beskrivelse }: TiltaksgjennomforingsHeaderProps) { return (
- - {tiltakstype} + + {tiltaksgjennomforingsnavn} -
- {arrangor && ( - - {arrangor} - - )} - - {tiltakstype} - -
+
{beskrivelse}
); } diff --git a/frontend/mulighetsrommet-veileder-flate/src/views/ViewTiltakstype-tiltaksgjennomforing-detaljer.less b/frontend/mulighetsrommet-veileder-flate/src/views/ViewTiltakstype-tiltaksgjennomforing-detaljer.less index 2951b1b316..4943237e48 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/views/ViewTiltakstype-tiltaksgjennomforing-detaljer.less +++ b/frontend/mulighetsrommet-veileder-flate/src/views/ViewTiltakstype-tiltaksgjennomforing-detaljer.less @@ -2,7 +2,7 @@ .tiltakstype-detaljer { display: grid; grid-template-rows: auto auto; - grid-template-columns: auto 22rem; + grid-template-columns: auto 23rem; grid-gap: 1%; margin: 0 1rem; @@ -24,7 +24,6 @@ flex-direction: column; gap: 0.5rem; height: fit-content; - width: 22rem; } } } diff --git a/frontend/mulighetsrommet-veileder-flate/src/views/tiltakstype-detaljer/ViewTiltakstypeDetaljer.tsx b/frontend/mulighetsrommet-veileder-flate/src/views/tiltakstype-detaljer/ViewTiltakstypeDetaljer.tsx index 60a05be13e..33859c9623 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/views/tiltakstype-detaljer/ViewTiltakstypeDetaljer.tsx +++ b/frontend/mulighetsrommet-veileder-flate/src/views/tiltakstype-detaljer/ViewTiltakstypeDetaljer.tsx @@ -1,61 +1,109 @@ -import React from 'react'; -import { useParams } from 'react-router-dom'; +import React, { useEffect, useState } from 'react'; import '../ViewTiltakstype-tiltaksgjennomforing-detaljer.less'; -import { Alert, Loader } from '@navikt/ds-react'; -import useTiltakstype from '../../hooks/tiltakstype/useTiltakstype'; import Tilbakeknapp from '../../components/tilbakeknapp/Tilbakeknapp'; import TiltaksgjennomforingsHeader from '../../layouts/TiltaksgjennomforingsHeader'; -import TiltaksdetaljerFane from '../../components/tabs/TiltaksdetaljerFane'; -import { Tiltakskode } from '../../../../mulighetsrommet-api-client'; import Statistikk from '../../components/statistikk/Statistikk'; import SidemenyDetaljer from '../../components/sidemeny/SidemenyDetaljer'; - -interface RouteParams { - tiltakskode: Tiltakskode; -} +import { useParams } from 'react-router-dom'; +import { sanityClient } from '../../sanityClient'; +import TiltaksdetaljerFane from '../../components/tabs/TiltaksdetaljerFane'; const ViewTiltakstypeDetaljer = () => { - const params = useParams<'tiltakskode'>() as RouteParams; + const { tiltaksnummer } = useParams(); + // const tiltaksgjennomforing = useTiltaksgjennomforingDetaljer(parseInt(tiltaksnummer!)); + // console.log('tiltak', tiltaksgjennomforing); + // + // const { tiltaksgjennomforingNavn, arrangor } = tiltaksgjennomforing; - //TODO legg inn tiltaksgjennomføring når den er klar - const tiltakstype = useTiltakstype(params.tiltakskode); + //TODO alt dette skal ryddes inn i egne hooks + const [tiltaksgjennomforinger, setTiltaksgjennomforinger] = useState([]); - if (tiltakstype.isError) { - return Det har skjedd en feil; - } + useEffect(() => { + sanityClient + .fetch( + `*[_type == "tiltaksgjennomforing" && tiltaksnummer == ${tiltaksnummer}]{ + _id, + tiltaksgjennomforingNavn, + beskrivelse, + tiltaksnummer, + lokasjon, + oppstart, + oppstartsdato, + enheter{ + fylke, + asker, + fredrikstad, + indreOstfold, + lillestrom, + ringsaker, + sarpsborg, + skiptvedtMarker, + steinkjer, + trondheim + }, + faneinnhold{ + forHvemInfoboks, + detaljerOgInnholdInfoboks, + pameldingOgVarighetInfoboks, + forHvem, + detaljerOgInnhold, + pameldingOgVarighet, + }, + kontaktinfoArrangor->, + kontaktinfoTiltaksansvarlig->, + tiltakstype->}` + ) + .then(data => setTiltaksgjennomforinger(data)); + }, []); - if (tiltakstype.isLoading) { - return ; - } - - if (!tiltakstype.data) { - return Nå er det noe rusk i maskineriet...; - } - - const { navn, tiltakskode, innsatsgruppe, fraDato } = tiltakstype.data; - - return ( -
- -
- - ( +
+ +
+ + + +
+ - -
- -
+ ) ); }; diff --git a/frontend/mulighetsrommet-veileder-flate/src/views/tiltakstype-oversikt/ViewTiltakstypeOversikt.tsx b/frontend/mulighetsrommet-veileder-flate/src/views/tiltakstype-oversikt/ViewTiltakstypeOversikt.tsx index ce98842266..e7f480dc4c 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/views/tiltakstype-oversikt/ViewTiltakstypeOversikt.tsx +++ b/frontend/mulighetsrommet-veileder-flate/src/views/tiltakstype-oversikt/ViewTiltakstypeOversikt.tsx @@ -1,6 +1,6 @@ import React, { useEffect, useState } from 'react'; import './ViewTiltakstypeOversikt.less'; -import '../../layouts/MainView.less'; +import '../../layouts/TiltaksgjennomforingsHeader.less'; import { Alert, Button, Link, Loader } from '@navikt/ds-react'; import Filtermeny from '../../components/filtrering/Filtermeny'; import TiltakstypeTabell from '../../components/tabell/TiltakstypeTabell'; diff --git a/package-lock.json b/package-lock.json index 7e3323f179..595471b921 100644 --- a/package-lock.json +++ b/package-lock.json @@ -117,6 +117,7 @@ "@navikt/fnrvalidator": "^1.2.0", "@navikt/frontendlogger": "^2.0.0", "@navikt/navspa": "^5.0.1", + "@portabletext/react": "^1.0.6", "@reduxjs/toolkit": "^1.6.2", "@sanity/cli": "^2.30.0", "@sanity/client": "^3.3.0", @@ -2807,16 +2808,15 @@ } }, "node_modules/@portabletext/react": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@portabletext/react/-/react-1.0.4.tgz", - "integrity": "sha512-IaCt83hJTR1foeD8FsMJmGnBawuD4IAaRQqilTElIgBzdsuW79h14D4REso8xY0Fdt+T+h+W+n/AnAS8QT/ZQQ==", - "license": "MIT", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@portabletext/react/-/react-1.0.6.tgz", + "integrity": "sha512-j6BprLiwFz3zr1Lo6BxM2sQ1b3g1JIjGwePeuxqSfbBiEYbGXn2izEckMJ02hSa1f7+RCEUJ+Bojvtzz6BBUaw==", "dependencies": { "@portabletext/toolkit": "^1.0.5", "@portabletext/types": "^1.0.3" }, "peerDependencies": { - "react": "^17.0.0" + "react": "^17 || ^18" } }, "node_modules/@portabletext/toolkit": { @@ -27758,9 +27758,9 @@ "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==" }, "@portabletext/react": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@portabletext/react/-/react-1.0.4.tgz", - "integrity": "sha512-IaCt83hJTR1foeD8FsMJmGnBawuD4IAaRQqilTElIgBzdsuW79h14D4REso8xY0Fdt+T+h+W+n/AnAS8QT/ZQQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@portabletext/react/-/react-1.0.6.tgz", + "integrity": "sha512-j6BprLiwFz3zr1Lo6BxM2sQ1b3g1JIjGwePeuxqSfbBiEYbGXn2izEckMJ02hSa1f7+RCEUJ+Bojvtzz6BBUaw==", "requires": { "@portabletext/toolkit": "^1.0.5", "@portabletext/types": "^1.0.3" @@ -37813,6 +37813,7 @@ "@navikt/fnrvalidator": "^1.2.0", "@navikt/frontendlogger": "^2.0.0", "@navikt/navspa": "^5.0.1", + "@portabletext/react": "*", "@reduxjs/toolkit": "^1.6.2", "@sanity/cli": "^2.30.0", "@sanity/client": "^3.3.0", From 0857dc77bcd025dcb1e1c30c6c42125f948f4c3e Mon Sep 17 00:00:00 2001 From: taniaholst Date: Fri, 3 Jun 2022 14:31:40 +0200 Subject: [PATCH 03/13] tc-122 bugfiks --- .../ViewTiltakstypeDetaljer.tsx | 105 ++++++++++-------- 1 file changed, 57 insertions(+), 48 deletions(-) diff --git a/frontend/mulighetsrommet-veileder-flate/src/views/tiltakstype-detaljer/ViewTiltakstypeDetaljer.tsx b/frontend/mulighetsrommet-veileder-flate/src/views/tiltakstype-detaljer/ViewTiltakstypeDetaljer.tsx index 33859c9623..f99920b691 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/views/tiltakstype-detaljer/ViewTiltakstypeDetaljer.tsx +++ b/frontend/mulighetsrommet-veileder-flate/src/views/tiltakstype-detaljer/ViewTiltakstypeDetaljer.tsx @@ -56,54 +56,63 @@ const ViewTiltakstypeDetaljer = () => { .then(data => setTiltaksgjennomforinger(data)); }, []); - return tiltaksgjennomforinger.map( - ({ - _id, - tiltaksgjennomforingNavn, - oppstart, - oppstartsdato, - beskrivelse, - tiltakstype: { tiltakstypeNavn, innsatsgruppe }, - kontaktinfoArrangor: { selskapsnavn }, - faneinnhold: { - forHvem, - detaljerOgInnhold, - pameldingOgVarighet, - kontaktinfo, - forHvemInfoboks, - detaljerOgInnholdInfoboks, - pameldingOgVarighetInfoboks, - }, - }) => ( -
- -
- - - -
- -
- ) + return ( + <> + {tiltaksgjennomforinger.map( + ({ + _id, + tiltaksgjennomforingNavn, + oppstart, + oppstartsdato, + beskrivelse, + tiltakstype: { tiltakstypeNavn, innsatsgruppe }, + kontaktinfoArrangor: { selskapsnavn }, + faneinnhold: { + forHvem, + detaljerOgInnhold, + pameldingOgVarighet, + kontaktinfo, + forHvemInfoboks, + detaljerOgInnholdInfoboks, + pameldingOgVarighetInfoboks, + }, + }) => ( +
+ +
+ + + +
+ +
+ ) + )} + ); }; From 073e2f744af5e2aa31d466c4d313644b602148db Mon Sep 17 00:00:00 2001 From: taniaholst Date: Fri, 3 Jun 2022 14:38:37 +0200 Subject: [PATCH 04/13] tc-122 push fiks --- .../views/tiltakstype-detaljer/ViewTiltakstypeDetaljer.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/mulighetsrommet-veileder-flate/src/views/tiltakstype-detaljer/ViewTiltakstypeDetaljer.tsx b/frontend/mulighetsrommet-veileder-flate/src/views/tiltakstype-detaljer/ViewTiltakstypeDetaljer.tsx index f99920b691..c5d77cf26a 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/views/tiltakstype-detaljer/ViewTiltakstypeDetaljer.tsx +++ b/frontend/mulighetsrommet-veileder-flate/src/views/tiltakstype-detaljer/ViewTiltakstypeDetaljer.tsx @@ -5,7 +5,7 @@ import TiltaksgjennomforingsHeader from '../../layouts/TiltaksgjennomforingsHead import Statistikk from '../../components/statistikk/Statistikk'; import SidemenyDetaljer from '../../components/sidemeny/SidemenyDetaljer'; import { useParams } from 'react-router-dom'; -import { sanityClient } from '../../sanityClient'; +import { client } from '../../sanityClient'; import TiltaksdetaljerFane from '../../components/tabs/TiltaksdetaljerFane'; const ViewTiltakstypeDetaljer = () => { @@ -19,7 +19,7 @@ const ViewTiltakstypeDetaljer = () => { const [tiltaksgjennomforinger, setTiltaksgjennomforinger] = useState([]); useEffect(() => { - sanityClient + client .fetch( `*[_type == "tiltaksgjennomforing" && tiltaksnummer == ${tiltaksnummer}]{ _id, From 8a419c3e9d7a3b40759ae51d41e30866c8053c35 Mon Sep 17 00:00:00 2001 From: taniaholst Date: Wed, 8 Jun 2022 13:52:23 +0200 Subject: [PATCH 05/13] tc-122 detaljvisningen er (nesten) klar --- .../src/models/Arrangor.ts | 11 + .../src/models/Tiltaksansvarlig.ts | 11 + .../src/models/Tiltaksgjennomforing.ts | 30 ++- .../src/models/Tiltakstype.ts | 24 ++- .../schemas/tiltakstype.js | 2 +- .../src/RoutesConfig.tsx | 4 +- .../src/components/filtrering/Searchfield.tsx | 2 +- .../src/components/sidemeny/Sidemeny.less | 12 ++ .../components/sidemeny/SidemenyDetaljer.tsx | 27 +-- .../src/components/statistikk/Statistikk.less | 11 +- .../src/components/statistikk/Statistikk.tsx | 2 +- .../tabell/TiltaksgjennomforingsTabell.tsx | 181 +++++++++++++++++ .../components/tabell/TiltakstypeTabell.tsx | 189 ------------------ .../components/tabs/TiltaksdetaljerFane.less | 17 +- .../components/tabs/TiltaksdetaljerFane.tsx | 60 +++--- .../src/components/tabs/detaljerFane.tsx | 37 ++++ .../tabs/kontaktinfofane/ArrangorInfo.tsx | 31 +++ .../tabs/kontaktinfofane/KontaktinfoFane.less | 20 ++ .../tabs/kontaktinfofane/KontaktinfoFane.tsx | 33 +++ .../kontaktinfofane/TiltaksansvarligInfo.tsx | 34 ++++ .../components/tilbakeknapp/Tilbakeknapp.less | 2 + .../src/core/api/QueryKeys.ts | 2 + .../useTiltaksgjennomforing.ts | 21 +- ...ljer.ts => useTiltaksgjennomforingById.ts} | 10 +- .../useTiltaksgjennomforingTabell.ts | 22 -- .../useTiltaksgjennomforinger.ts | 14 -- .../useTiltaksgjennomforingerByTiltakskode.ts | 9 - .../hooks/tiltakstype/useInnsatsgrupper.ts | 8 +- .../layouts/TiltaksgjennomforingsHeader.less | 4 +- .../layouts/TiltaksgjennomforingsHeader.tsx | 14 +- .../ViewTiltaksgjennomforingDetaljer.less} | 11 - .../ViewTiltakstypeDetaljer.tsx | 73 +++++++ .../ViewTiltakstypeOversikt.less | 0 .../ViewTiltakstypeOversikt.tsx | 21 +- .../ViewTiltakstypeDetaljer.tsx | 119 ----------- 35 files changed, 608 insertions(+), 460 deletions(-) create mode 100644 frontend/mulighetsrommet-api-client/src/models/Arrangor.ts create mode 100644 frontend/mulighetsrommet-api-client/src/models/Tiltaksansvarlig.ts create mode 100644 frontend/mulighetsrommet-veileder-flate/src/components/tabell/TiltaksgjennomforingsTabell.tsx delete mode 100644 frontend/mulighetsrommet-veileder-flate/src/components/tabell/TiltakstypeTabell.tsx create mode 100644 frontend/mulighetsrommet-veileder-flate/src/components/tabs/detaljerFane.tsx create mode 100644 frontend/mulighetsrommet-veileder-flate/src/components/tabs/kontaktinfofane/ArrangorInfo.tsx create mode 100644 frontend/mulighetsrommet-veileder-flate/src/components/tabs/kontaktinfofane/KontaktinfoFane.less create mode 100644 frontend/mulighetsrommet-veileder-flate/src/components/tabs/kontaktinfofane/KontaktinfoFane.tsx create mode 100644 frontend/mulighetsrommet-veileder-flate/src/components/tabs/kontaktinfofane/TiltaksansvarligInfo.tsx rename frontend/mulighetsrommet-veileder-flate/src/hooks/tiltaksgjennomforing/{useTiltaksgjennomforingDetaljer.ts => useTiltaksgjennomforingById.ts} (67%) delete mode 100644 frontend/mulighetsrommet-veileder-flate/src/hooks/tiltaksgjennomforing/useTiltaksgjennomforingTabell.ts delete mode 100644 frontend/mulighetsrommet-veileder-flate/src/hooks/tiltaksgjennomforing/useTiltaksgjennomforinger.ts delete mode 100644 frontend/mulighetsrommet-veileder-flate/src/hooks/tiltaksgjennomforing/useTiltaksgjennomforingerByTiltakskode.ts rename frontend/mulighetsrommet-veileder-flate/src/views/{ViewTiltakstype-tiltaksgjennomforing-detaljer.less => tiltaksgjennomforing-detaljer/ViewTiltaksgjennomforingDetaljer.less} (61%) create mode 100644 frontend/mulighetsrommet-veileder-flate/src/views/tiltaksgjennomforing-detaljer/ViewTiltakstypeDetaljer.tsx rename frontend/mulighetsrommet-veileder-flate/src/views/{tiltakstype-oversikt => tiltaksgjennomforing-oversikt}/ViewTiltakstypeOversikt.less (100%) rename frontend/mulighetsrommet-veileder-flate/src/views/{tiltakstype-oversikt => tiltaksgjennomforing-oversikt}/ViewTiltakstypeOversikt.tsx (76%) delete mode 100644 frontend/mulighetsrommet-veileder-flate/src/views/tiltakstype-detaljer/ViewTiltakstypeDetaljer.tsx diff --git a/frontend/mulighetsrommet-api-client/src/models/Arrangor.ts b/frontend/mulighetsrommet-api-client/src/models/Arrangor.ts new file mode 100644 index 0000000000..b39cfe29a3 --- /dev/null +++ b/frontend/mulighetsrommet-api-client/src/models/Arrangor.ts @@ -0,0 +1,11 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type Arrangor = { + _id: number; + selskapsnavn: string; + telefonnummer: string; + epost: string; + adresse: string; +}; diff --git a/frontend/mulighetsrommet-api-client/src/models/Tiltaksansvarlig.ts b/frontend/mulighetsrommet-api-client/src/models/Tiltaksansvarlig.ts new file mode 100644 index 0000000000..edc73c5d76 --- /dev/null +++ b/frontend/mulighetsrommet-api-client/src/models/Tiltaksansvarlig.ts @@ -0,0 +1,11 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type Tiltaksansvarlig = { + _id: number; + navn: string; + enhet: string; + telefonnummer: string; + epost: string; +}; diff --git a/frontend/mulighetsrommet-api-client/src/models/Tiltaksgjennomforing.ts b/frontend/mulighetsrommet-api-client/src/models/Tiltaksgjennomforing.ts index 5d992fd4d9..998528b393 100644 --- a/frontend/mulighetsrommet-api-client/src/models/Tiltaksgjennomforing.ts +++ b/frontend/mulighetsrommet-api-client/src/models/Tiltaksgjennomforing.ts @@ -2,14 +2,28 @@ /* tslint:disable */ /* eslint-disable */ -import type { Tiltakskode } from './Tiltakskode'; +import { Tiltakstype } from "./Tiltakstype"; +import { Arrangor } from "./Arrangor"; +import { Tiltaksansvarlig } from "./Tiltaksansvarlig"; export type Tiltaksgjennomforing = { - id: number; - tittel: string; - beskrivelse: string; - tiltakskode: Tiltakskode; - tiltaksnummer?: string; - fraDato: string | null; - tilDato: string | null; + _id: number; + tiltakstype: Tiltakstype; + tiltaksgjennomforingNavn: string; + beskrivelse?: string; + tiltaksnummer: number; + kontaktinfoArrangor: Arrangor; + lokasjon: string; + enheter: { fylke: string }; + oppstart: string; + oppstartsdato?: Date; + faneinnhold?: { + forHvemInfoboks?: string; + forHvem?: object; + detaljerOgInnholdInfoboks?: string; + detaljerOgInnhold?: object; + pameldingOgVarighetInfoboks?: string; + pameldingOgVarighet?: object; + }; + kontaktinfoTiltaksansvarlig: Tiltaksansvarlig; }; diff --git a/frontend/mulighetsrommet-api-client/src/models/Tiltakstype.ts b/frontend/mulighetsrommet-api-client/src/models/Tiltakstype.ts index 05d585fe80..0ccff12efa 100644 --- a/frontend/mulighetsrommet-api-client/src/models/Tiltakstype.ts +++ b/frontend/mulighetsrommet-api-client/src/models/Tiltakstype.ts @@ -2,14 +2,20 @@ /* tslint:disable */ /* eslint-disable */ -import type { Tiltakskode } from './Tiltakskode'; - export type Tiltakstype = { - id: number; - innsatsgruppe: number | null; - sanityId: number | null; - navn: string; - tiltakskode: Tiltakskode; - fraDato: string | null; - tilDato: string | null; + _id: number; + tiltakstypeNavn: string; + beskrivelse?: string; + innsatsgruppe: string; + varighet?: string; + regelverkFil?: string; //skal være fil + regelverkLenke?: string; + faneinnhold?: { + forHvemInfoboks?: string; + forHvem?: object; + detaljerOgInnholdInfoboks?: string; + detaljerOgInnhold?: object; + pameldingOgVarighetInfoboks?: string; + pameldingOgVarighet?: object; + }; }; diff --git a/frontend/mulighetsrommet-cms/schemas/tiltakstype.js b/frontend/mulighetsrommet-cms/schemas/tiltakstype.js index a2837cfa50..fc5ba410d2 100644 --- a/frontend/mulighetsrommet-cms/schemas/tiltakstype.js +++ b/frontend/mulighetsrommet-cms/schemas/tiltakstype.js @@ -15,7 +15,7 @@ export default { { name: "beskrivelse", title: "Beskrivelse", - type: "blockContent", + type: "string", }, { name: "overgangTilArbeid", diff --git a/frontend/mulighetsrommet-veileder-flate/src/RoutesConfig.tsx b/frontend/mulighetsrommet-veileder-flate/src/RoutesConfig.tsx index 08ab61f398..5256a8a23a 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/RoutesConfig.tsx +++ b/frontend/mulighetsrommet-veileder-flate/src/RoutesConfig.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { Navigate, Route, Routes } from 'react-router-dom'; -import ViewTiltakstypeDetaljer from './views/tiltakstype-detaljer/ViewTiltakstypeDetaljer'; -import ViewTiltakstypeOversikt from './views/tiltakstype-oversikt/ViewTiltakstypeOversikt'; +import ViewTiltakstypeDetaljer from './views/tiltaksgjennomforing-detaljer/ViewTiltakstypeDetaljer'; +import ViewTiltakstypeOversikt from './views/tiltaksgjennomforing-oversikt/ViewTiltakstypeOversikt'; const RoutesConfig = () => { return ( diff --git a/frontend/mulighetsrommet-veileder-flate/src/components/filtrering/Searchfield.tsx b/frontend/mulighetsrommet-veileder-flate/src/components/filtrering/Searchfield.tsx index be752cac3b..9690b38e63 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/components/filtrering/Searchfield.tsx +++ b/frontend/mulighetsrommet-veileder-flate/src/components/filtrering/Searchfield.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import '../../views/tiltakstype-oversikt/ViewTiltakstypeOversikt.less'; +import '../../views/tiltaksgjennomforing-oversikt/ViewTiltakstypeOversikt.less'; import { TextField } from '@navikt/ds-react'; interface SokeFilterProps { diff --git a/frontend/mulighetsrommet-veileder-flate/src/components/sidemeny/Sidemeny.less b/frontend/mulighetsrommet-veileder-flate/src/components/sidemeny/Sidemeny.less index 1d13073fce..fab304685b 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/components/sidemeny/Sidemeny.less +++ b/frontend/mulighetsrommet-veileder-flate/src/components/sidemeny/Sidemeny.less @@ -1,11 +1,23 @@ .mulighetsrommet-veileder-flate { .tiltakstype-detaljer { + display: grid; + grid-template-rows: auto auto; + grid-template-columns: auto 23rem; + grid-gap: 1rem; + margin: 0 1rem; &__rad { display: flex; justify-content: space-between; margin-bottom: 1rem; column-gap: 1rem; } + &__sidemeny { + grid-row: 2; + display: flex; + flex-direction: column; + gap: 0.5rem; + height: fit-content; + } span { text-align: end; } diff --git a/frontend/mulighetsrommet-veileder-flate/src/components/sidemeny/SidemenyDetaljer.tsx b/frontend/mulighetsrommet-veileder-flate/src/components/sidemeny/SidemenyDetaljer.tsx index c4321cb17e..ee6099ce83 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/components/sidemeny/SidemenyDetaljer.tsx +++ b/frontend/mulighetsrommet-veileder-flate/src/components/sidemeny/SidemenyDetaljer.tsx @@ -2,23 +2,22 @@ import React from 'react'; import { Panel } from '@navikt/ds-react'; import './Sidemeny.less'; import Kopiknapp from '../kopiknapp/Kopiknapp'; +import { Tiltaksgjennomforing, Tiltakstype } from '../../../../mulighetsrommet-api-client'; interface SidemenyDetaljerProps { tiltaksnummer: string; - tiltakstype: string; - beskrivelse?: string; + regelverk?: string; arrangor: string; - innsatsgruppe: string | null; oppstartsdato?: string | null; + tiltakstype: Tiltakstype; } const SidemenyDetaljer = ({ tiltaksnummer, - tiltakstype, arrangor, - innsatsgruppe, oppstartsdato, - beskrivelse, + regelverk, + tiltakstype, }: SidemenyDetaljerProps) => { return ( <> @@ -32,7 +31,7 @@ const SidemenyDetaljer = ({
Tiltakstype - {tiltakstype} + {tiltakstype.tiltakstypeNavn}
@@ -42,17 +41,19 @@ const SidemenyDetaljer = ({
Innsatsgruppe - {innsatsgruppe} + {tiltakstype.innsatsgruppe}
-
- Oppstart - {oppstartsdato} -
+ {oppstartsdato && ( +
+ Oppstart + {oppstartsdato} +
+ )}
Regelverk - {beskrivelse} + {regelverk}
diff --git a/frontend/mulighetsrommet-veileder-flate/src/components/statistikk/Statistikk.less b/frontend/mulighetsrommet-veileder-flate/src/components/statistikk/Statistikk.less index 52f97395cf..ee46c88d17 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/components/statistikk/Statistikk.less +++ b/frontend/mulighetsrommet-veileder-flate/src/components/statistikk/Statistikk.less @@ -1,6 +1,6 @@ .mulighetsrommet-veileder-flate { .statistikk { - width: 40%; + width: 30%; display: flex; flex-direction: column; gap: 0.5rem; @@ -16,10 +16,9 @@ font-weight: unset; } } - - .navds-body-short { - font-size: 32px; - line-height: unset; - } + &__tekst { + font-size: 32px; + line-height: unset; + } } } diff --git a/frontend/mulighetsrommet-veileder-flate/src/components/statistikk/Statistikk.tsx b/frontend/mulighetsrommet-veileder-flate/src/components/statistikk/Statistikk.tsx index 2a0c4f9abe..4309b4232d 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/components/statistikk/Statistikk.tsx +++ b/frontend/mulighetsrommet-veileder-flate/src/components/statistikk/Statistikk.tsx @@ -17,7 +17,7 @@ const Statistikk = ({ tittel, hjelpetekst, statistikktekst }: StatistikkProps) = {hjelpetekst}
- {statistikktekst} + {statistikktekst}
); }; diff --git a/frontend/mulighetsrommet-veileder-flate/src/components/tabell/TiltaksgjennomforingsTabell.tsx b/frontend/mulighetsrommet-veileder-flate/src/components/tabell/TiltaksgjennomforingsTabell.tsx new file mode 100644 index 0000000000..8c63d4f3ce --- /dev/null +++ b/frontend/mulighetsrommet-veileder-flate/src/components/tabell/TiltaksgjennomforingsTabell.tsx @@ -0,0 +1,181 @@ +import React, { useState } from 'react'; +import { Pagination, Table, Alert, Heading, Loader } from '@navikt/ds-react'; +import './Tabell.less'; +import Lenke from '../lenke/Lenke'; +import Kopiknapp from '../kopiknapp/Kopiknapp'; +import StatusGronn from '../../ikoner/Sirkel-gronn.png'; +import StatusGul from '../../ikoner/Sirkel-gul.png'; +import StatusRod from '../../ikoner/Sirkel-rod.png'; +import { Tiltaksgjennomforing } from '../../../../mulighetsrommet-api-client'; +import useTiltaksgjennomforing from '../../hooks/tiltaksgjennomforing/useTiltaksgjennomforing'; + +const TiltaksgjennomforingsTabell = () => { + const [sort, setSort] = useState(); + const [page, setPage] = useState(1); + const rowsPerPage = 15; + const pagination = (tiltaksgjennomforing: Tiltaksgjennomforing[] | undefined) => { + return Math.ceil(tiltaksgjennomforing!.length / rowsPerPage); + }; + + const hentTiltaksgjennomforinger = useTiltaksgjennomforing(); + + const tiltaksgjennomforingerLoading = hentTiltaksgjennomforinger.isLoading; + const tiltaksgjennomforingerError = hentTiltaksgjennomforinger.isError; + const tiltaksgjennomforinger = hentTiltaksgjennomforinger.data; + + const tilgjengelighetsstatus = (status: string) => { + //TODO endre denne når vi får inn data fra Arena + if (status === 'Åpent') { + return ( +
+ Grønt sirkelikon +
Åpent
+
+ ); + } else if (status === 'Stengt') { + return ( +
+ Rødt sirkelikon +
Stengt
+
+ ); + } else if (status === 'Venteliste') { + return ( +
+ Gult sirkelikon +
Venteliste
+
+ ); + } + }; + + return ( + <> + {tiltaksgjennomforingerLoading && } + {tiltaksgjennomforingerError && Det har skjedd en feil} + {tiltaksgjennomforinger && ( +
+ + setSort( + sort && sortKey === sort.orderBy && sort.direction === 'descending' + ? undefined + : { + orderBy: sortKey, + direction: + sort && sortKey === sort.orderBy && sort.direction === 'ascending' ? 'descending' : 'ascending', + } + ) + } + > + + + + Tiltaksnavn + + + Tiltaksnr. + + + Tiltakstype + + + Lokasjon + + + Oppstartsdato + + {/*TODO fiks sortering*/} + + Status + + + + + {tiltaksgjennomforinger!.length === 0 ? ( + + + Det finnes ingen tiltakstyper med dette søket. + + + ) : ( + tiltaksgjennomforinger! + .sort((a, b) => { + if (sort) { + const comparator = (a: any, b: any, orderBy: string | number) => { + if (b[orderBy] < a[orderBy] || b[orderBy] === undefined) { + return -1; + } + if (b[orderBy] > a[orderBy]) { + return 1; + } + return 0; + }; + return sort.direction === 'ascending' + ? comparator(b, a, sort.orderBy) + : comparator(a, b, sort.orderBy); + } + return 1; + }) + .slice((page - 1) * rowsPerPage, page * rowsPerPage) + .map( + ({ + _id, + tiltaksnummer, + tiltaksgjennomforingNavn, + oppstart, + oppstartsdato, + lokasjon, + tiltakstype, + kontaktinfoArrangor, + }) => ( + + + + {tiltaksgjennomforingNavn} + +
{kontaktinfoArrangor.selskapsnavn}
+
+ + {tiltaksnummer} + + + {tiltakstype.tiltakstypeNavn} + {lokasjon} + + {oppstart === 'dato' ? new Intl.DateTimeFormat().format(new Date(oppstartsdato!)) : 'Løpende'} + + {tilgjengelighetsstatus('Åpent')} +
+ ) + ) + )} +
+
+
+ + Viser {tiltaksgjennomforinger?.length} av {tiltaksgjennomforinger?.length} tiltak + + +
+
+ )} + + ); +}; + +export default TiltaksgjennomforingsTabell; diff --git a/frontend/mulighetsrommet-veileder-flate/src/components/tabell/TiltakstypeTabell.tsx b/frontend/mulighetsrommet-veileder-flate/src/components/tabell/TiltakstypeTabell.tsx deleted file mode 100644 index d66f8749b3..0000000000 --- a/frontend/mulighetsrommet-veileder-flate/src/components/tabell/TiltakstypeTabell.tsx +++ /dev/null @@ -1,189 +0,0 @@ -import React, { useEffect, useState } from 'react'; -import { Pagination, Table, Alert, Heading } from '@navikt/ds-react'; -import './Tabell.less'; -import Lenke from '../lenke/Lenke'; -import Kopiknapp from '../kopiknapp/Kopiknapp'; -import StatusGronn from '../../ikoner/Sirkel-gronn.png'; -import StatusGul from '../../ikoner/Sirkel-gul.png'; -import StatusRod from '../../ikoner/Sirkel-rod.png'; -import { client } from '../../sanityClient'; - -const TiltakstypeTabell = () => { - const [sort, setSort] = useState(); - const [page, setPage] = useState(1); - const rowsPerPage = 15; - const pagination = (tiltaksgjennomforing: string[]) => { - return Math.ceil(tiltaksgjennomforing.length / rowsPerPage); - }; - - const [tiltaksgjennomforinger, setTiltaksgjennomforinger] = useState([]); - - useEffect(() => { - client - .fetch( - `*[_type == "tiltaksgjennomforing"]{ - _id, - tiltaksgjennomforingNavn, - enheter, - lokasjon, - oppstart, - oppstartsdato, - tiltaksnummer, - kontaktinfoArrangor->, - tiltakstype-> - }` - ) - .then(data => setTiltaksgjennomforinger(data)); - }, []); - - const tilgjengelighetsstatus = (status: string) => { - //TODO endre denne når vi får inn data fra Arena - if (status === 'Åpent') { - return ( -
- Grønt sirkelikon -
Åpent
-
- ); - } else if (status === 'Stengt') { - return ( -
- Rødt sirkelikon -
Stengt
-
- ); - } else if (status === 'Venteliste') { - return ( -
- Gult sirkelikon -
Venteliste
-
- ); - } - }; - - return ( -
- - setSort( - sort && sortKey === sort.orderBy && sort.direction === 'descending' - ? undefined - : { - orderBy: sortKey, - direction: - sort && sortKey === sort.orderBy && sort.direction === 'ascending' ? 'descending' : 'ascending', - } - ) - } - > - - - - Tiltaksnavn - - - Tiltaksnr. - - {/*TODO fiks sortering*/} - - Tiltakstype - - - Lokasjon - - - Oppstartsdato - - {/*TODO fiks sortering*/} - - Status - - - - - {tiltaksgjennomforinger.length === 0 ? ( - - - Det finnes ingen tiltakstyper med dette søket. - - - ) : ( - tiltaksgjennomforinger - .sort((a, b) => { - if (sort) { - const comparator = (a: any, b: any, orderBy: string | number) => { - if (b[orderBy] < a[orderBy] || b[orderBy] === undefined) { - return -1; - } - if (b[orderBy] > a[orderBy]) { - return 1; - } - return 0; - }; - return sort.direction === 'ascending' - ? comparator(b, a, sort.orderBy) - : comparator(a, b, sort.orderBy); - } - return 1; - }) - .slice((page - 1) * rowsPerPage, page * rowsPerPage) - .map( - ({ - _id, - tiltaksnummer, - tiltaksgjennomforingNavn, - oppstart, - oppstartsdato, - lokasjon, - tiltakstype: { tiltakstypeNavn }, - kontaktinfoArrangor: { selskapsnavn }, - }) => ( - - - - {tiltaksgjennomforingNavn} - -
{selskapsnavn}
-
- - {tiltaksnummer} - - - {tiltakstypeNavn} - {lokasjon} - - {oppstart === 'dato' ? new Intl.DateTimeFormat().format(new Date(oppstartsdato)) : 'Løpende'} - - {tilgjengelighetsstatus('Åpent')} -
- ) - ) - )} -
-
-
- - Viser {tiltaksgjennomforinger?.length} av {tiltaksgjennomforinger?.length} tiltak - - -
-
- ); -}; - -export default TiltakstypeTabell; diff --git a/frontend/mulighetsrommet-veileder-flate/src/components/tabs/TiltaksdetaljerFane.less b/frontend/mulighetsrommet-veileder-flate/src/components/tabs/TiltaksdetaljerFane.less index 84290408ef..8f99d6c8e1 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/components/tabs/TiltaksdetaljerFane.less +++ b/frontend/mulighetsrommet-veileder-flate/src/components/tabs/TiltaksdetaljerFane.less @@ -1,7 +1,7 @@ .mulighetsrommet-veileder-flate { .fane { &__root { - margin: 1rem 0; + margin: 1rem 0 2rem; } &__liste { @@ -12,6 +12,10 @@ gap: 5%; justify-content: start; + .navds-label { + font-weight: normal; + } + button { background-color: transparent; border: none; @@ -25,15 +29,24 @@ .btn__tab { width: fit-content; + margin: 0 0.5rem; } button[data-state='active'] { - font-weight: bold; + .navds-label { + font-weight: bold; + } border-bottom: 3px solid var(--navds-semantic-color-interaction-primary); } } } + .navds-tabs__tabpanel { + .tiltaksdetaljer__alert { + margin-bottom: 1rem; + } + } + @media (max-width: 1200px) { .fane__liste { justify-content: space-between; diff --git a/frontend/mulighetsrommet-veileder-flate/src/components/tabs/TiltaksdetaljerFane.tsx b/frontend/mulighetsrommet-veileder-flate/src/components/tabs/TiltaksdetaljerFane.tsx index 6f02060a46..d8b1985db4 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/components/tabs/TiltaksdetaljerFane.tsx +++ b/frontend/mulighetsrommet-veileder-flate/src/components/tabs/TiltaksdetaljerFane.tsx @@ -1,28 +1,27 @@ import React from 'react'; import './TiltaksdetaljerFane.less'; -import { Alert, Tabs } from '@navikt/ds-react'; -import { PortableText } from '@portabletext/react'; +import { Tabs } from '@navikt/ds-react'; +import KontaktinfoFane from './kontaktinfofane/KontaktinfoFane'; +import { Tiltaksansvarlig } from '../../../../mulighetsrommet-api-client/src/models/Tiltaksansvarlig'; +import { Arrangor } from '../../../../mulighetsrommet-api-client/src/models/Arrangor'; +import DetaljerFane from './detaljerFane'; +import { Tiltakstype } from '../../../../mulighetsrommet-api-client'; interface TiltaksdetaljerFaneProps { - forHvemAlert: string; - detaljerOgInnholdAlert: string; - pameldingOgVarighetAlert: string; - forHvem: any; - detaljerOgInnhold: any; - pameldingOgVarighet: any; - kontaktinfo: any; + tiltaksgjennomforingTiltaksansvarlig: Tiltaksansvarlig; + tiltaksgjennomforingArrangorinfo: Arrangor; + tiltakstype: Tiltakstype; + faneinnhold: any; } const TiltaksdetaljerFane = ({ - forHvemAlert, - detaljerOgInnholdAlert, - pameldingOgVarighetAlert, - forHvem, - detaljerOgInnhold, - pameldingOgVarighet, - kontaktinfo, + tiltaksgjennomforingTiltaksansvarlig, + tiltaksgjennomforingArrangorinfo, + tiltakstype, + faneinnhold, }: TiltaksdetaljerFaneProps) => { const faneoverskrifter = ['For hvem', 'Detaljer og innhold', 'Påmelding og varighet', 'Kontaktinfo', 'Innsikt']; + return ( @@ -31,19 +30,34 @@ const TiltaksdetaljerFane = ({ ))} - {forHvemAlert ? {forHvemAlert} : <>} - + - {detaljerOgInnholdAlert ? {detaljerOgInnholdAlert} : <>} - + - {pameldingOgVarighetAlert ? {pameldingOgVarighetAlert} : <>} - + - + Innsikt diff --git a/frontend/mulighetsrommet-veileder-flate/src/components/tabs/detaljerFane.tsx b/frontend/mulighetsrommet-veileder-flate/src/components/tabs/detaljerFane.tsx new file mode 100644 index 0000000000..6fa82c93f1 --- /dev/null +++ b/frontend/mulighetsrommet-veileder-flate/src/components/tabs/detaljerFane.tsx @@ -0,0 +1,37 @@ +import React from 'react'; +import { Alert } from '@navikt/ds-react'; +import { PortableText } from '@portabletext/react'; +import './TiltaksdetaljerFane.less'; + +interface FaneMalProps { + tiltaksgjennomforingAlert?: string; + tiltakstypeAlert?: string; + tiltaksgjennomforing?: any; + tiltakstype?: any; +} + +const DetaljerFane = ({ + tiltaksgjennomforingAlert, + tiltakstypeAlert, + tiltaksgjennomforing, + tiltakstype, +}: FaneMalProps) => { + return ( + <> + {tiltakstypeAlert && ( + + {tiltakstypeAlert} + + )} + {tiltaksgjennomforingAlert && ( + + {tiltaksgjennomforingAlert} + + )} + + + + ); +}; + +export default DetaljerFane; diff --git a/frontend/mulighetsrommet-veileder-flate/src/components/tabs/kontaktinfofane/ArrangorInfo.tsx b/frontend/mulighetsrommet-veileder-flate/src/components/tabs/kontaktinfofane/ArrangorInfo.tsx new file mode 100644 index 0000000000..6af722ea81 --- /dev/null +++ b/frontend/mulighetsrommet-veileder-flate/src/components/tabs/kontaktinfofane/ArrangorInfo.tsx @@ -0,0 +1,31 @@ +import { BodyShort, Heading, Label } from '@navikt/ds-react'; +import React from 'react'; + +interface ArrangorProps { + arrangorinfo: any; +} + +const ArrangorInfo = ({ arrangorinfo }: ArrangorProps) => { + return ( + <> + + {arrangorinfo.selskapsnavn} + +
+
+ + {arrangorinfo.telefonnummer} +
+
+ + {arrangorinfo.epost} +
+
+ + {arrangorinfo.adresse} +
+
+ + ); +}; +export default ArrangorInfo; diff --git a/frontend/mulighetsrommet-veileder-flate/src/components/tabs/kontaktinfofane/KontaktinfoFane.less b/frontend/mulighetsrommet-veileder-flate/src/components/tabs/kontaktinfofane/KontaktinfoFane.less new file mode 100644 index 0000000000..864828be16 --- /dev/null +++ b/frontend/mulighetsrommet-veileder-flate/src/components/tabs/kontaktinfofane/KontaktinfoFane.less @@ -0,0 +1,20 @@ +.mulighetsrommet-veileder-flate { + .kontaktinfo { + display: grid; + grid-template-columns: auto auto; + &__header { + margin-bottom: 0.5rem; + } + &__navn { + margin-bottom: 0.2rem; + } + &__container { + display: flex; + flex-direction: column; + } + &__rad { + display: grid; + grid-template-columns: 6rem auto; + } + } +} diff --git a/frontend/mulighetsrommet-veileder-flate/src/components/tabs/kontaktinfofane/KontaktinfoFane.tsx b/frontend/mulighetsrommet-veileder-flate/src/components/tabs/kontaktinfofane/KontaktinfoFane.tsx new file mode 100644 index 0000000000..b62bfbac8b --- /dev/null +++ b/frontend/mulighetsrommet-veileder-flate/src/components/tabs/kontaktinfofane/KontaktinfoFane.tsx @@ -0,0 +1,33 @@ +import React from 'react'; +import { Heading } from '@navikt/ds-react'; +import './KontaktinfoFane.less'; +import ArrangorInfo from './ArrangorInfo'; +import TiltaksansvarligInfo from './TiltaksansvarligInfo'; +import { Arrangor } from '../../../../../mulighetsrommet-api-client/src/models/Arrangor'; +import { Tiltaksansvarlig } from '../../../../../mulighetsrommet-api-client/src/models/Tiltaksansvarlig'; + +interface KontaktinfoFaneProps { + tiltaksansvarligInfo: Tiltaksansvarlig; + arrangorinfo: Arrangor; +} + +const KontaktinfoFane = ({ tiltaksansvarligInfo, arrangorinfo }: KontaktinfoFaneProps) => { + return ( +
+
+ + Arrangør + + +
+
+ + Tiltaksansvarlig + + +
+
+ ); +}; + +export default KontaktinfoFane; diff --git a/frontend/mulighetsrommet-veileder-flate/src/components/tabs/kontaktinfofane/TiltaksansvarligInfo.tsx b/frontend/mulighetsrommet-veileder-flate/src/components/tabs/kontaktinfofane/TiltaksansvarligInfo.tsx new file mode 100644 index 0000000000..743f8fb3fd --- /dev/null +++ b/frontend/mulighetsrommet-veileder-flate/src/components/tabs/kontaktinfofane/TiltaksansvarligInfo.tsx @@ -0,0 +1,34 @@ +import { BodyShort, Heading, Label } from '@navikt/ds-react'; +import React from 'react'; +import { Tiltaksansvarlig } from '../../../../../mulighetsrommet-api-client/src/models/Tiltaksansvarlig'; +import './KontaktinfoFane.less'; + +interface TiltaksansvarligProps { + tiltaksansvarlig: Tiltaksansvarlig; +} + +const TiltaksansvarligInfo = ({ tiltaksansvarlig }: TiltaksansvarligProps) => { + //TODO når det er mulig å ha flere tiltaksansvarlige i Sanity må det mappes her + return ( + <> + + {tiltaksansvarlig.navn} + +
+
+ + {tiltaksansvarlig.telefonnummer} +
+
+ + {tiltaksansvarlig.epost} +
+
+ + {tiltaksansvarlig.enhet} +
+
+ + ); +}; +export default TiltaksansvarligInfo; diff --git a/frontend/mulighetsrommet-veileder-flate/src/components/tilbakeknapp/Tilbakeknapp.less b/frontend/mulighetsrommet-veileder-flate/src/components/tilbakeknapp/Tilbakeknapp.less index 4ef4b2d149..1942b3d2bb 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/components/tilbakeknapp/Tilbakeknapp.less +++ b/frontend/mulighetsrommet-veileder-flate/src/components/tilbakeknapp/Tilbakeknapp.less @@ -1,5 +1,7 @@ .mulighetsrommet-veileder-flate { .tilbakeknapp { + grid-column: 1; + grid-row: 1; max-width: fit-content; display: flex; justify-content: space-between; diff --git a/frontend/mulighetsrommet-veileder-flate/src/core/api/QueryKeys.ts b/frontend/mulighetsrommet-veileder-flate/src/core/api/QueryKeys.ts index 82e42d3dc4..038be85d02 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/core/api/QueryKeys.ts +++ b/frontend/mulighetsrommet-veileder-flate/src/core/api/QueryKeys.ts @@ -2,4 +2,6 @@ export const enum QueryKeys { Innsatsgrupper = 'innsatsgrupper', Tiltakstyper = 'tiltakstyper', Tiltaksgjennomforinger = 'tiltaksgjennomforinger', + kontaktperson = 'kontaktperson', + arrangor = 'arrangor', } diff --git a/frontend/mulighetsrommet-veileder-flate/src/hooks/tiltaksgjennomforing/useTiltaksgjennomforing.ts b/frontend/mulighetsrommet-veileder-flate/src/hooks/tiltaksgjennomforing/useTiltaksgjennomforing.ts index f9f7aad15c..5cc4ad3028 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/hooks/tiltaksgjennomforing/useTiltaksgjennomforing.ts +++ b/frontend/mulighetsrommet-veileder-flate/src/hooks/tiltaksgjennomforing/useTiltaksgjennomforing.ts @@ -1,9 +1,22 @@ import { useQuery } from 'react-query'; -import { MulighetsrommetService, Tiltaksgjennomforing } from 'mulighetsrommet-api-client'; +import { Tiltaksgjennomforing } from 'mulighetsrommet-api-client'; import { QueryKeys } from '../../core/api/QueryKeys'; +import { client } from '../../sanityClient'; -export default function useTiltaksgjennomforing(id: number) { - return useQuery([QueryKeys.Tiltaksgjennomforinger, id], () => - MulighetsrommetService.getTiltaksgjennomforing({ id }) +export default function useTiltaksgjennomforing() { + return useQuery([QueryKeys.Tiltaksgjennomforinger], () => + client.fetch( + `*[_type == "tiltaksgjennomforing"]{ + _id, + tiltaksgjennomforingNavn, + enheter, + lokasjon, + oppstart, + oppstartsdato, + tiltaksnummer, + kontaktinfoArrangor->, + tiltakstype-> + }` + ) ); } diff --git a/frontend/mulighetsrommet-veileder-flate/src/hooks/tiltaksgjennomforing/useTiltaksgjennomforingDetaljer.ts b/frontend/mulighetsrommet-veileder-flate/src/hooks/tiltaksgjennomforing/useTiltaksgjennomforingById.ts similarity index 67% rename from frontend/mulighetsrommet-veileder-flate/src/hooks/tiltaksgjennomforing/useTiltaksgjennomforingDetaljer.ts rename to frontend/mulighetsrommet-veileder-flate/src/hooks/tiltaksgjennomforing/useTiltaksgjennomforingById.ts index 26d94137ce..1cd2b5f683 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/hooks/tiltaksgjennomforing/useTiltaksgjennomforingDetaljer.ts +++ b/frontend/mulighetsrommet-veileder-flate/src/hooks/tiltaksgjennomforing/useTiltaksgjennomforingById.ts @@ -1,11 +1,11 @@ import { useQuery } from 'react-query'; -import { MulighetsrommetService, Tiltaksgjennomforing } from 'mulighetsrommet-api-client'; +import { Tiltaksgjennomforing } from 'mulighetsrommet-api-client'; import { QueryKeys } from '../../core/api/QueryKeys'; -import { sanityClient } from '../../sanityClient'; +import { client } from '../../sanityClient'; -export default function useTiltaksgjennomforingDetaljer(id: number) { - return useQuery([QueryKeys.Tiltaksgjennomforinger, id], () => - sanityClient.fetch(`*[_type == "tiltaksgjennomforing" && tiltaksnummer == ${id}]{ +export default function useTiltaksgjennomforingById(id: number) { + return useQuery([QueryKeys.Tiltaksgjennomforinger, id], () => + client.fetch(`*[_type == "tiltaksgjennomforing" && tiltaksnummer == ${id}]{ _id, tiltaksgjennomforingNavn, beskrivelse, diff --git a/frontend/mulighetsrommet-veileder-flate/src/hooks/tiltaksgjennomforing/useTiltaksgjennomforingTabell.ts b/frontend/mulighetsrommet-veileder-flate/src/hooks/tiltaksgjennomforing/useTiltaksgjennomforingTabell.ts deleted file mode 100644 index 29335b8db5..0000000000 --- a/frontend/mulighetsrommet-veileder-flate/src/hooks/tiltaksgjennomforing/useTiltaksgjennomforingTabell.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { useQuery } from 'react-query'; -import { Tiltaksgjennomforing } from 'mulighetsrommet-api-client'; -import { QueryKeys } from '../../core/api/QueryKeys'; -import { sanityClient } from '../../sanityClient'; - -export default function useTiltaksgjennomforingTabell() { - return useQuery([QueryKeys.Tiltaksgjennomforinger], () => - sanityClient.fetch( - `*[_type == "tiltaksgjennomforing"]{ - _id, - tiltaksgjennomforingNavn, - enheter, - lokasjon, - oppstart, - oppstartsdato, - tiltaksnummer, - kontaktinfoArrangor->, - tiltakstype-> - }` - ) - ); -} diff --git a/frontend/mulighetsrommet-veileder-flate/src/hooks/tiltaksgjennomforing/useTiltaksgjennomforinger.ts b/frontend/mulighetsrommet-veileder-flate/src/hooks/tiltaksgjennomforing/useTiltaksgjennomforinger.ts deleted file mode 100644 index 4da574432e..0000000000 --- a/frontend/mulighetsrommet-veileder-flate/src/hooks/tiltaksgjennomforing/useTiltaksgjennomforinger.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { useQuery } from 'react-query'; -import { MulighetsrommetService, Tiltaksgjennomforing } from 'mulighetsrommet-api-client'; -import { Tiltaksgjennomforingsfilter } from '../../core/atoms/atoms'; -import { QueryKeys } from '../../core/api/QueryKeys'; - -export default function useTiltaksgjennomforinger(filter: Tiltaksgjennomforingsfilter = {}) { - return useQuery([QueryKeys.Tiltaksgjennomforinger, filter], () => - MulighetsrommetService.getTiltaksgjennomforinger({ - ...filter, - innsatsgrupper: filter.innsatsgrupper?.map(gruppe => gruppe.id), - tiltakstyper: filter.tiltakstyper?.map(type => type.id), - }) - ); -} diff --git a/frontend/mulighetsrommet-veileder-flate/src/hooks/tiltaksgjennomforing/useTiltaksgjennomforingerByTiltakskode.ts b/frontend/mulighetsrommet-veileder-flate/src/hooks/tiltaksgjennomforing/useTiltaksgjennomforingerByTiltakskode.ts deleted file mode 100644 index 418c9853db..0000000000 --- a/frontend/mulighetsrommet-veileder-flate/src/hooks/tiltaksgjennomforing/useTiltaksgjennomforingerByTiltakskode.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { useQuery } from 'react-query'; -import { MulighetsrommetService, Tiltaksgjennomforing, Tiltakskode } from 'mulighetsrommet-api-client'; -import { QueryKeys } from '../../core/api/QueryKeys'; - -export default function useTiltaksgjennomforingerByTiltakskode(tiltakskode: Tiltakskode) { - return useQuery([QueryKeys.Tiltaksgjennomforinger, { tiltakskode }], () => - MulighetsrommetService.getTiltaksgjennomforingerByTiltakskode({ tiltakskode }) - ); -} diff --git a/frontend/mulighetsrommet-veileder-flate/src/hooks/tiltakstype/useInnsatsgrupper.ts b/frontend/mulighetsrommet-veileder-flate/src/hooks/tiltakstype/useInnsatsgrupper.ts index e73949337f..15a9b82b99 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/hooks/tiltakstype/useInnsatsgrupper.ts +++ b/frontend/mulighetsrommet-veileder-flate/src/hooks/tiltakstype/useInnsatsgrupper.ts @@ -1,7 +1,13 @@ import { useQuery } from 'react-query'; import { MulighetsrommetService, Innsatsgruppe } from 'mulighetsrommet-api-client'; import { QueryKeys } from '../../core/api/QueryKeys'; +import { client } from '../../sanityClient'; export function useInnsatsgrupper() { - return useQuery(QueryKeys.Innsatsgrupper, MulighetsrommetService.getInnsatsgrupper); + return useQuery( + QueryKeys.Innsatsgrupper, + MulighetsrommetService.getInnsatsgrupper + // () => + // client.fetch(`*[_type == "tiltakstype"]{innsatsgruppe}`) + ); } diff --git a/frontend/mulighetsrommet-veileder-flate/src/layouts/TiltaksgjennomforingsHeader.less b/frontend/mulighetsrommet-veileder-flate/src/layouts/TiltaksgjennomforingsHeader.less index fb22decf95..80b885c1ef 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/layouts/TiltaksgjennomforingsHeader.less +++ b/frontend/mulighetsrommet-veileder-flate/src/layouts/TiltaksgjennomforingsHeader.less @@ -1,8 +1,10 @@ .mulighetsrommet-veileder-flate { .tiltaksgjennomforing { + &__title { + margin-bottom: 3rem; + } &__beskrivelse { font-size: 22px; - margin-bottom: 3rem; } } } diff --git a/frontend/mulighetsrommet-veileder-flate/src/layouts/TiltaksgjennomforingsHeader.tsx b/frontend/mulighetsrommet-veileder-flate/src/layouts/TiltaksgjennomforingsHeader.tsx index 06415527a5..774e1811e0 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/layouts/TiltaksgjennomforingsHeader.tsx +++ b/frontend/mulighetsrommet-veileder-flate/src/layouts/TiltaksgjennomforingsHeader.tsx @@ -5,10 +5,15 @@ import { kebabCase } from '../utils/Utils'; interface TiltaksgjennomforingsHeaderProps { tiltaksgjennomforingsnavn: string; - beskrivelse: string; + beskrivelseTiltaksgjennomforing?: string; + beskrivelseTiltakstype?: string; } -function TiltaksgjennomforingsHeader({ tiltaksgjennomforingsnavn, beskrivelse }: TiltaksgjennomforingsHeaderProps) { +function TiltaksgjennomforingsHeader({ + tiltaksgjennomforingsnavn, + beskrivelseTiltaksgjennomforing, + beskrivelseTiltakstype, +}: TiltaksgjennomforingsHeaderProps) { return (
{tiltaksgjennomforingsnavn} -
{beskrivelse}
+ {beskrivelseTiltaksgjennomforing && ( +
{beskrivelseTiltaksgjennomforing}
+ )} + {beskrivelseTiltakstype &&
{beskrivelseTiltakstype}
}
); } diff --git a/frontend/mulighetsrommet-veileder-flate/src/views/ViewTiltakstype-tiltaksgjennomforing-detaljer.less b/frontend/mulighetsrommet-veileder-flate/src/views/tiltaksgjennomforing-detaljer/ViewTiltaksgjennomforingDetaljer.less similarity index 61% rename from frontend/mulighetsrommet-veileder-flate/src/views/ViewTiltakstype-tiltaksgjennomforing-detaljer.less rename to frontend/mulighetsrommet-veileder-flate/src/views/tiltaksgjennomforing-detaljer/ViewTiltaksgjennomforingDetaljer.less index 4943237e48..6b66df752d 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/views/ViewTiltakstype-tiltaksgjennomforing-detaljer.less +++ b/frontend/mulighetsrommet-veileder-flate/src/views/tiltaksgjennomforing-detaljer/ViewTiltaksgjennomforingDetaljer.less @@ -1,16 +1,5 @@ .mulighetsrommet-veileder-flate { .tiltakstype-detaljer { - display: grid; - grid-template-rows: auto auto; - grid-template-columns: auto 23rem; - grid-gap: 1%; - margin: 0 1rem; - - .tilbakeknapp { - grid-column: 1; - grid-row: 1; - } - &__info { grid-column: 1; grid-row: 2; diff --git a/frontend/mulighetsrommet-veileder-flate/src/views/tiltaksgjennomforing-detaljer/ViewTiltakstypeDetaljer.tsx b/frontend/mulighetsrommet-veileder-flate/src/views/tiltaksgjennomforing-detaljer/ViewTiltakstypeDetaljer.tsx new file mode 100644 index 0000000000..5aeb296eb0 --- /dev/null +++ b/frontend/mulighetsrommet-veileder-flate/src/views/tiltaksgjennomforing-detaljer/ViewTiltakstypeDetaljer.tsx @@ -0,0 +1,73 @@ +import React from 'react'; +import './ViewTiltaksgjennomforingDetaljer.less'; +import Tilbakeknapp from '../../components/tilbakeknapp/Tilbakeknapp'; +import TiltaksgjennomforingsHeader from '../../layouts/TiltaksgjennomforingsHeader'; +import Statistikk from '../../components/statistikk/Statistikk'; +import SidemenyDetaljer from '../../components/sidemeny/SidemenyDetaljer'; +import { useParams } from 'react-router-dom'; +import TiltaksdetaljerFane from '../../components/tabs/TiltaksdetaljerFane'; +import useTiltaksgjennomforingById from '../../hooks/tiltaksgjennomforing/useTiltaksgjennomforingById'; +import { Alert, Loader } from '@navikt/ds-react'; + +const ViewTiltakstypeDetaljer = () => { + const { tiltaksnummer } = useParams(); + const hentTiltaksgjennomforing = useTiltaksgjennomforingById(parseInt(tiltaksnummer!)); + + const tiltaksgjennomforing = hentTiltaksgjennomforing.data; + const tiltaksgjennomforingLoading = hentTiltaksgjennomforing.isLoading; + const tiltaksgjennomforingError = hentTiltaksgjennomforing.isError; + + return ( + <> + {tiltaksgjennomforingLoading && } + {tiltaksgjennomforingError && Det har skjedd en feil} + {tiltaksgjennomforing && + tiltaksgjennomforing.map( + ({ + _id, + tiltaksgjennomforingNavn, + oppstart, + oppstartsdato, + beskrivelse, + tiltakstype, + kontaktinfoArrangor, + faneinnhold, + kontaktinfoTiltaksansvarlig, + }) => ( +
+ +
+ + + +
+ +
+ ) + )} + + ); +}; + +export default ViewTiltakstypeDetaljer; diff --git a/frontend/mulighetsrommet-veileder-flate/src/views/tiltakstype-oversikt/ViewTiltakstypeOversikt.less b/frontend/mulighetsrommet-veileder-flate/src/views/tiltaksgjennomforing-oversikt/ViewTiltakstypeOversikt.less similarity index 100% rename from frontend/mulighetsrommet-veileder-flate/src/views/tiltakstype-oversikt/ViewTiltakstypeOversikt.less rename to frontend/mulighetsrommet-veileder-flate/src/views/tiltaksgjennomforing-oversikt/ViewTiltakstypeOversikt.less diff --git a/frontend/mulighetsrommet-veileder-flate/src/views/tiltakstype-oversikt/ViewTiltakstypeOversikt.tsx b/frontend/mulighetsrommet-veileder-flate/src/views/tiltaksgjennomforing-oversikt/ViewTiltakstypeOversikt.tsx similarity index 76% rename from frontend/mulighetsrommet-veileder-flate/src/views/tiltakstype-oversikt/ViewTiltakstypeOversikt.tsx rename to frontend/mulighetsrommet-veileder-flate/src/views/tiltaksgjennomforing-oversikt/ViewTiltakstypeOversikt.tsx index 223dbad5ef..44a29dff33 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/views/tiltakstype-oversikt/ViewTiltakstypeOversikt.tsx +++ b/frontend/mulighetsrommet-veileder-flate/src/views/tiltaksgjennomforing-oversikt/ViewTiltakstypeOversikt.tsx @@ -1,27 +1,22 @@ -import React, { useEffect, useState } from 'react'; +import React, { useEffect } from 'react'; import './ViewTiltakstypeOversikt.less'; import '../../layouts/TiltaksgjennomforingsHeader.less'; -import { Alert, Button, Link, Loader } from '@navikt/ds-react'; +import { Alert, Button } from '@navikt/ds-react'; import Filtermeny from '../../components/filtrering/Filtermeny'; -import TiltakstypeTabell from '../../components/tabell/TiltakstypeTabell'; import { useAtom } from 'jotai'; import SearchFieldTag from '../../components/tags/SearchFieldTag'; import { tiltaksgjennomforingsfilter } from '../../core/atoms/atoms'; import { FAKE_DOOR, useFeatureToggles } from '../../api/feature-toggles'; import FilterTags from '../../components/tags/Filtertags'; -import useTiltaksgjennomforinger from '../../hooks/tiltaksgjennomforing/useTiltaksgjennomforinger'; import Show from '../../utils/Show'; -import { client } from '../../sanityClient'; +import TiltaksgjennomforingsTabell from '../../components/tabell/TiltaksgjennomforingsTabell'; const ViewTiltakstypeOversikt = () => { const [filter, setFilter] = useAtom(tiltaksgjennomforingsfilter); - const [gjennomforing, setGjennomforing] = useState(null); const features = useFeatureToggles(); const visFakeDoorFeature = features.isSuccess && features.data[FAKE_DOOR]; - const { data, isFetching, isError } = useTiltaksgjennomforinger(filter); - //TODO fiks denne når vi får inn prefiltrering useEffect(() => { if (filter.tiltakstyper?.length === 0 && filter.innsatsgrupper?.length === 0) { @@ -29,10 +24,6 @@ const ViewTiltakstypeOversikt = () => { } }, [filter.tiltakstyper, filter.innsatsgrupper]); - useEffect(() => { - client.fetch(`*[_type == "tiltaksgjennomforing"]`).then(data => setGjennomforing(data)); - }, []); - return ( <> {visFakeDoorFeature ? ( @@ -56,7 +47,7 @@ const ViewTiltakstypeOversikt = () => { handleClick={(id: number) => setFilter({ ...filter, - tiltakstyper: filter.tiltakstyper?.filter(tiltakstype => tiltakstype.id !== id), + tiltakstyper: filter.tiltakstyper?.filter(tiltakstype => tiltakstype._id !== id), }) } /> @@ -76,9 +67,7 @@ const ViewTiltakstypeOversikt = () => {
- {isFetching && !data && } - {data && } - {isError && Det har skjedd en feil} +
)} diff --git a/frontend/mulighetsrommet-veileder-flate/src/views/tiltakstype-detaljer/ViewTiltakstypeDetaljer.tsx b/frontend/mulighetsrommet-veileder-flate/src/views/tiltakstype-detaljer/ViewTiltakstypeDetaljer.tsx deleted file mode 100644 index c5d77cf26a..0000000000 --- a/frontend/mulighetsrommet-veileder-flate/src/views/tiltakstype-detaljer/ViewTiltakstypeDetaljer.tsx +++ /dev/null @@ -1,119 +0,0 @@ -import React, { useEffect, useState } from 'react'; -import '../ViewTiltakstype-tiltaksgjennomforing-detaljer.less'; -import Tilbakeknapp from '../../components/tilbakeknapp/Tilbakeknapp'; -import TiltaksgjennomforingsHeader from '../../layouts/TiltaksgjennomforingsHeader'; -import Statistikk from '../../components/statistikk/Statistikk'; -import SidemenyDetaljer from '../../components/sidemeny/SidemenyDetaljer'; -import { useParams } from 'react-router-dom'; -import { client } from '../../sanityClient'; -import TiltaksdetaljerFane from '../../components/tabs/TiltaksdetaljerFane'; - -const ViewTiltakstypeDetaljer = () => { - const { tiltaksnummer } = useParams(); - // const tiltaksgjennomforing = useTiltaksgjennomforingDetaljer(parseInt(tiltaksnummer!)); - // console.log('tiltak', tiltaksgjennomforing); - // - // const { tiltaksgjennomforingNavn, arrangor } = tiltaksgjennomforing; - - //TODO alt dette skal ryddes inn i egne hooks - const [tiltaksgjennomforinger, setTiltaksgjennomforinger] = useState([]); - - useEffect(() => { - client - .fetch( - `*[_type == "tiltaksgjennomforing" && tiltaksnummer == ${tiltaksnummer}]{ - _id, - tiltaksgjennomforingNavn, - beskrivelse, - tiltaksnummer, - lokasjon, - oppstart, - oppstartsdato, - enheter{ - fylke, - asker, - fredrikstad, - indreOstfold, - lillestrom, - ringsaker, - sarpsborg, - skiptvedtMarker, - steinkjer, - trondheim - }, - faneinnhold{ - forHvemInfoboks, - detaljerOgInnholdInfoboks, - pameldingOgVarighetInfoboks, - forHvem, - detaljerOgInnhold, - pameldingOgVarighet, - }, - kontaktinfoArrangor->, - kontaktinfoTiltaksansvarlig->, - tiltakstype->}` - ) - .then(data => setTiltaksgjennomforinger(data)); - }, []); - - return ( - <> - {tiltaksgjennomforinger.map( - ({ - _id, - tiltaksgjennomforingNavn, - oppstart, - oppstartsdato, - beskrivelse, - tiltakstype: { tiltakstypeNavn, innsatsgruppe }, - kontaktinfoArrangor: { selskapsnavn }, - faneinnhold: { - forHvem, - detaljerOgInnhold, - pameldingOgVarighet, - kontaktinfo, - forHvemInfoboks, - detaljerOgInnholdInfoboks, - pameldingOgVarighetInfoboks, - }, - }) => ( -
- -
- - - -
- -
- ) - )} - - ); -}; - -export default ViewTiltakstypeDetaljer; From 2ebeb315edf1ecfa23ded04d0b799c53cc39f009 Mon Sep 17 00:00:00 2001 From: taniaholst Date: Wed, 8 Jun 2022 19:36:38 +0200 Subject: [PATCH 06/13] tc-122 formattering og fiks av css --- .../src/models/Tiltakstype.ts | 2 ++ .../schemas/tiltakstype.js | 27 +++++++++++++++++ .../src/components/sidemeny/Sidemeny.less | 5 ++++ .../components/sidemeny/SidemenyDetaljer.tsx | 29 ++++++++++--------- .../tabs/kontaktinfofane/ArrangorInfo.tsx | 2 +- .../tabs/kontaktinfofane/KontaktinfoFane.tsx | 4 +-- .../kontaktinfofane/TiltaksansvarligInfo.tsx | 2 +- .../ViewTiltakstypeDetaljer.tsx | 1 - 8 files changed, 54 insertions(+), 18 deletions(-) diff --git a/frontend/mulighetsrommet-api-client/src/models/Tiltakstype.ts b/frontend/mulighetsrommet-api-client/src/models/Tiltakstype.ts index 0ccff12efa..8d2ed7df5a 100644 --- a/frontend/mulighetsrommet-api-client/src/models/Tiltakstype.ts +++ b/frontend/mulighetsrommet-api-client/src/models/Tiltakstype.ts @@ -9,7 +9,9 @@ export type Tiltakstype = { innsatsgruppe: string; varighet?: string; regelverkFil?: string; //skal være fil + regelverkFilNavn?: string; regelverkLenke?: string; + regelverkLenkeNavn?: string; faneinnhold?: { forHvemInfoboks?: string; forHvem?: object; diff --git a/frontend/mulighetsrommet-cms/schemas/tiltakstype.js b/frontend/mulighetsrommet-cms/schemas/tiltakstype.js index fc5ba410d2..0e92eff00f 100644 --- a/frontend/mulighetsrommet-cms/schemas/tiltakstype.js +++ b/frontend/mulighetsrommet-cms/schemas/tiltakstype.js @@ -58,10 +58,37 @@ export default { title: "Regelverk fil", type: "file", }, + { + name: "regelverkFilNavn", + title: "Navn til fil", + description: "Hvilket navn skal vises til filen?", + type: "string", + validation: (Rule) => + Rule.custom((field, context) => + context.document.regelverkFil && field === undefined + ? "This field must not be empty." + : true + ), + hidden: ({ document }) => !document?.regelverkFil, + }, { name: "regelverkLenke", title: "Regelverk lenke", type: "url", + placeholder: "https://www...", + }, + { + name: "regelverkLenkeNavn", + title: "Navn til lenke", + description: "Hvilket navn skal vises i lenken?", + type: "string", + validation: (Rule) => + Rule.custom((field, context) => + context.document.regelverkLenke && field === undefined + ? "This field must not be empty." + : true + ), + hidden: ({ document }) => !document?.regelverkLenke, }, //Faneinnhold { diff --git a/frontend/mulighetsrommet-veileder-flate/src/components/sidemeny/Sidemeny.less b/frontend/mulighetsrommet-veileder-flate/src/components/sidemeny/Sidemeny.less index fab304685b..8e5ce89cc7 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/components/sidemeny/Sidemeny.less +++ b/frontend/mulighetsrommet-veileder-flate/src/components/sidemeny/Sidemeny.less @@ -18,6 +18,11 @@ gap: 0.5rem; height: fit-content; } + &__regelverk { + display: flex; + flex-direction: column; + gap: 1rem; + } span { text-align: end; } diff --git a/frontend/mulighetsrommet-veileder-flate/src/components/sidemeny/SidemenyDetaljer.tsx b/frontend/mulighetsrommet-veileder-flate/src/components/sidemeny/SidemenyDetaljer.tsx index ee6099ce83..371d0dee93 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/components/sidemeny/SidemenyDetaljer.tsx +++ b/frontend/mulighetsrommet-veileder-flate/src/components/sidemeny/SidemenyDetaljer.tsx @@ -1,24 +1,18 @@ import React from 'react'; -import { Panel } from '@navikt/ds-react'; +import { Button, Panel } from '@navikt/ds-react'; import './Sidemeny.less'; import Kopiknapp from '../kopiknapp/Kopiknapp'; import { Tiltaksgjennomforing, Tiltakstype } from '../../../../mulighetsrommet-api-client'; +import Lenke from '../lenke/Lenke'; interface SidemenyDetaljerProps { tiltaksnummer: string; - regelverk?: string; arrangor: string; oppstartsdato?: string | null; tiltakstype: Tiltakstype; } -const SidemenyDetaljer = ({ - tiltaksnummer, - arrangor, - oppstartsdato, - regelverk, - tiltakstype, -}: SidemenyDetaljerProps) => { +const SidemenyDetaljer = ({ tiltaksnummer, arrangor, oppstartsdato, tiltakstype }: SidemenyDetaljerProps) => { return ( <> @@ -51,10 +45,19 @@ const SidemenyDetaljer = ({ )} -
- Regelverk - {regelverk} -
+ {(tiltakstype.regelverkFil || tiltakstype.regelverkLenke) && ( +
+ Regelverk +
+ {tiltakstype.regelverkFil && {tiltakstype.regelverkFilNavn}} + {tiltakstype.regelverkLenke && ( + + {tiltakstype.regelverkLenkeNavn} + + )} +
+
+ )}
); diff --git a/frontend/mulighetsrommet-veileder-flate/src/components/tabs/kontaktinfofane/ArrangorInfo.tsx b/frontend/mulighetsrommet-veileder-flate/src/components/tabs/kontaktinfofane/ArrangorInfo.tsx index 6af722ea81..ade5c991fe 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/components/tabs/kontaktinfofane/ArrangorInfo.tsx +++ b/frontend/mulighetsrommet-veileder-flate/src/components/tabs/kontaktinfofane/ArrangorInfo.tsx @@ -8,7 +8,7 @@ interface ArrangorProps { const ArrangorInfo = ({ arrangorinfo }: ArrangorProps) => { return ( <> - + {arrangorinfo.selskapsnavn}
diff --git a/frontend/mulighetsrommet-veileder-flate/src/components/tabs/kontaktinfofane/KontaktinfoFane.tsx b/frontend/mulighetsrommet-veileder-flate/src/components/tabs/kontaktinfofane/KontaktinfoFane.tsx index b62bfbac8b..9f89cbc667 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/components/tabs/kontaktinfofane/KontaktinfoFane.tsx +++ b/frontend/mulighetsrommet-veileder-flate/src/components/tabs/kontaktinfofane/KontaktinfoFane.tsx @@ -15,13 +15,13 @@ const KontaktinfoFane = ({ tiltaksansvarligInfo, arrangorinfo }: KontaktinfoFane return (
- + Arrangør
- + Tiltaksansvarlig diff --git a/frontend/mulighetsrommet-veileder-flate/src/components/tabs/kontaktinfofane/TiltaksansvarligInfo.tsx b/frontend/mulighetsrommet-veileder-flate/src/components/tabs/kontaktinfofane/TiltaksansvarligInfo.tsx index 743f8fb3fd..a6515e0f92 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/components/tabs/kontaktinfofane/TiltaksansvarligInfo.tsx +++ b/frontend/mulighetsrommet-veileder-flate/src/components/tabs/kontaktinfofane/TiltaksansvarligInfo.tsx @@ -11,7 +11,7 @@ const TiltaksansvarligInfo = ({ tiltaksansvarlig }: TiltaksansvarligProps) => { //TODO når det er mulig å ha flere tiltaksansvarlige i Sanity må det mappes her return ( <> - + {tiltaksansvarlig.navn}
diff --git a/frontend/mulighetsrommet-veileder-flate/src/views/tiltaksgjennomforing-detaljer/ViewTiltakstypeDetaljer.tsx b/frontend/mulighetsrommet-veileder-flate/src/views/tiltaksgjennomforing-detaljer/ViewTiltakstypeDetaljer.tsx index 5aeb296eb0..bb5811739c 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/views/tiltaksgjennomforing-detaljer/ViewTiltakstypeDetaljer.tsx +++ b/frontend/mulighetsrommet-veileder-flate/src/views/tiltaksgjennomforing-detaljer/ViewTiltakstypeDetaljer.tsx @@ -61,7 +61,6 @@ const ViewTiltakstypeDetaljer = () => { oppstartsdato={ oppstart === 'dato' ? new Intl.DateTimeFormat().format(new Date(oppstartsdato!)) : 'Løpende' } - regelverk="Regelverk" />
) From eb0c5a0ae851383d1e566a0f8727fbff924b3833 Mon Sep 17 00:00:00 2001 From: taniaholst Date: Wed, 8 Jun 2022 19:45:46 +0200 Subject: [PATCH 07/13] tc-122 fjerna ubrukt redux --- .../package.json | 1 - package-lock.json | 76 ------------------- 2 files changed, 77 deletions(-) diff --git a/frontend/mulighetsrommet-veileder-flate/package.json b/frontend/mulighetsrommet-veileder-flate/package.json index 6ca3168057..cebc73fc28 100644 --- a/frontend/mulighetsrommet-veileder-flate/package.json +++ b/frontend/mulighetsrommet-veileder-flate/package.json @@ -35,7 +35,6 @@ "@navikt/frontendlogger": "^2.0.0", "@navikt/navspa": "^5.0.1", "@portabletext/react": "^1.0.6", - "@reduxjs/toolkit": "^1.6.2", "@sanity/cli": "^2.30.0", "@sanity/client": "^3.3.0", "@vitejs/plugin-react": "^1.2.0", diff --git a/package-lock.json b/package-lock.json index df088a3601..5b4ffd3d20 100644 --- a/package-lock.json +++ b/package-lock.json @@ -117,7 +117,6 @@ "@navikt/frontendlogger": "^2.0.0", "@navikt/navspa": "^5.0.1", "@portabletext/react": "^1.0.6", - "@reduxjs/toolkit": "^1.6.2", "@sanity/cli": "^2.30.0", "@sanity/client": "^3.3.0", "@vitejs/plugin-react": "^1.2.0", @@ -2925,29 +2924,6 @@ "react-dom": "^16.8.0 || 17.x" } }, - "node_modules/@reduxjs/toolkit": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.8.2.tgz", - "integrity": "sha512-CtPw5TkN1pHRigMFCOS/0qg3b/yfPV5qGCsltVnIz7bx4PKTJlGHYfIxm97qskLknMzuGfjExaYdXJ77QTL0vg==", - "dependencies": { - "immer": "^9.0.7", - "redux": "^4.1.2", - "redux-thunk": "^2.4.1", - "reselect": "^4.1.5" - }, - "peerDependencies": { - "react": "^16.9.0 || ^17.0.0 || ^18", - "react-redux": "^7.2.1 || ^8.0.0-beta" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-redux": { - "optional": true - } - } - }, "node_modules/@rollup/pluginutils": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.0.tgz", @@ -21890,22 +21866,6 @@ "balanced-match": "^1.0.0" } }, - "node_modules/redux": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.0.tgz", - "integrity": "sha512-oSBmcKKIuIR4ME29/AeNUnl5L+hvBq7OaJWzaptTQJAntaPvxIJqfnjbaEiCzzaIz+XmVILfqAM3Ob0aXLPfjA==", - "dependencies": { - "@babel/runtime": "^7.9.2" - } - }, - "node_modules/redux-thunk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.1.tgz", - "integrity": "sha512-OOYGNY5Jy2TWvTL1KgAlVy6dcx3siPJ1wTq741EPyUKfn6W6nChdICjZwCd0p8AZBs5kWpZlbkXW2nE/zjUa+Q==", - "peerDependencies": { - "redux": "^4" - } - }, "node_modules/refractor": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/refractor/-/refractor-3.6.0.tgz", @@ -22255,11 +22215,6 @@ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, - "node_modules/reselect": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.6.tgz", - "integrity": "sha512-ZovIuXqto7elwnxyXbBtCPo9YFEr3uJqj2rRbcOOog1bmu2Ag85M4hixSwFWyaBMKXNgvPaJ9OSu9SkBPIeJHQ==" - }, "node_modules/resolve": { "version": "1.22.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", @@ -27884,17 +27839,6 @@ "warning": "^4.0.3" } }, - "@reduxjs/toolkit": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.8.2.tgz", - "integrity": "sha512-CtPw5TkN1pHRigMFCOS/0qg3b/yfPV5qGCsltVnIz7bx4PKTJlGHYfIxm97qskLknMzuGfjExaYdXJ77QTL0vg==", - "requires": { - "immer": "^9.0.7", - "redux": "^4.1.2", - "redux-thunk": "^2.4.1", - "reselect": "^4.1.5" - } - }, "@rollup/pluginutils": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.0.tgz", @@ -37783,7 +37727,6 @@ "@navikt/frontendlogger": "^2.0.0", "@navikt/navspa": "^5.0.1", "@portabletext/react": "^1.0.6", - "@reduxjs/toolkit": "^1.6.2", "@sanity/cli": "^2.30.0", "@sanity/client": "^3.3.0", "@types/faker": "^5.5.9", @@ -42082,20 +42025,6 @@ "balanced-match": "^1.0.0" } }, - "redux": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.0.tgz", - "integrity": "sha512-oSBmcKKIuIR4ME29/AeNUnl5L+hvBq7OaJWzaptTQJAntaPvxIJqfnjbaEiCzzaIz+XmVILfqAM3Ob0aXLPfjA==", - "requires": { - "@babel/runtime": "^7.9.2" - } - }, - "redux-thunk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.1.tgz", - "integrity": "sha512-OOYGNY5Jy2TWvTL1KgAlVy6dcx3siPJ1wTq741EPyUKfn6W6nChdICjZwCd0p8AZBs5kWpZlbkXW2nE/zjUa+Q==", - "requires": {} - }, "refractor": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/refractor/-/refractor-3.6.0.tgz", @@ -42351,11 +42280,6 @@ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, - "reselect": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.6.tgz", - "integrity": "sha512-ZovIuXqto7elwnxyXbBtCPo9YFEr3uJqj2rRbcOOog1bmu2Ag85M4hixSwFWyaBMKXNgvPaJ9OSu9SkBPIeJHQ==" - }, "resolve": { "version": "1.22.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", From 46ba5e12235fd1c8d25178d86d79fe0946c0124a Mon Sep 17 00:00:00 2001 From: taniaholst Date: Wed, 8 Jun 2022 19:51:41 +0200 Subject: [PATCH 08/13] tc-122 oppdatert kode --- .../src/components/sidemeny/SidemenyDetaljer.tsx | 4 ++-- .../src/components/tabs/detaljerFane.tsx | 4 ++-- .../src/hooks/tiltakstype/useInnsatsgrupper.ts | 8 +------- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/frontend/mulighetsrommet-veileder-flate/src/components/sidemeny/SidemenyDetaljer.tsx b/frontend/mulighetsrommet-veileder-flate/src/components/sidemeny/SidemenyDetaljer.tsx index 371d0dee93..0407ba472f 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/components/sidemeny/SidemenyDetaljer.tsx +++ b/frontend/mulighetsrommet-veileder-flate/src/components/sidemeny/SidemenyDetaljer.tsx @@ -1,8 +1,8 @@ import React from 'react'; -import { Button, Panel } from '@navikt/ds-react'; +import { Panel } from '@navikt/ds-react'; import './Sidemeny.less'; import Kopiknapp from '../kopiknapp/Kopiknapp'; -import { Tiltaksgjennomforing, Tiltakstype } from '../../../../mulighetsrommet-api-client'; +import { Tiltakstype } from '../../../../mulighetsrommet-api-client'; import Lenke from '../lenke/Lenke'; interface SidemenyDetaljerProps { diff --git a/frontend/mulighetsrommet-veileder-flate/src/components/tabs/detaljerFane.tsx b/frontend/mulighetsrommet-veileder-flate/src/components/tabs/detaljerFane.tsx index 6fa82c93f1..b8ef0e074b 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/components/tabs/detaljerFane.tsx +++ b/frontend/mulighetsrommet-veileder-flate/src/components/tabs/detaljerFane.tsx @@ -3,7 +3,7 @@ import { Alert } from '@navikt/ds-react'; import { PortableText } from '@portabletext/react'; import './TiltaksdetaljerFane.less'; -interface FaneMalProps { +interface DetaljerFaneProps { tiltaksgjennomforingAlert?: string; tiltakstypeAlert?: string; tiltaksgjennomforing?: any; @@ -15,7 +15,7 @@ const DetaljerFane = ({ tiltakstypeAlert, tiltaksgjennomforing, tiltakstype, -}: FaneMalProps) => { +}: DetaljerFaneProps) => { return ( <> {tiltakstypeAlert && ( diff --git a/frontend/mulighetsrommet-veileder-flate/src/hooks/tiltakstype/useInnsatsgrupper.ts b/frontend/mulighetsrommet-veileder-flate/src/hooks/tiltakstype/useInnsatsgrupper.ts index 15a9b82b99..e73949337f 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/hooks/tiltakstype/useInnsatsgrupper.ts +++ b/frontend/mulighetsrommet-veileder-flate/src/hooks/tiltakstype/useInnsatsgrupper.ts @@ -1,13 +1,7 @@ import { useQuery } from 'react-query'; import { MulighetsrommetService, Innsatsgruppe } from 'mulighetsrommet-api-client'; import { QueryKeys } from '../../core/api/QueryKeys'; -import { client } from '../../sanityClient'; export function useInnsatsgrupper() { - return useQuery( - QueryKeys.Innsatsgrupper, - MulighetsrommetService.getInnsatsgrupper - // () => - // client.fetch(`*[_type == "tiltakstype"]{innsatsgruppe}`) - ); + return useQuery(QueryKeys.Innsatsgrupper, MulighetsrommetService.getInnsatsgrupper); } From 77dbb434773718d14790a53ff48ca99ba6c650ce Mon Sep 17 00:00:00 2001 From: taniaholst Date: Wed, 8 Jun 2022 19:53:34 +0200 Subject: [PATCH 09/13] tc-122 oppdatert kode --- .../src/layouts/TiltaksgjennomforingsHeader.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/mulighetsrommet-veileder-flate/src/layouts/TiltaksgjennomforingsHeader.tsx b/frontend/mulighetsrommet-veileder-flate/src/layouts/TiltaksgjennomforingsHeader.tsx index 774e1811e0..cd20868f40 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/layouts/TiltaksgjennomforingsHeader.tsx +++ b/frontend/mulighetsrommet-veileder-flate/src/layouts/TiltaksgjennomforingsHeader.tsx @@ -9,11 +9,11 @@ interface TiltaksgjennomforingsHeaderProps { beskrivelseTiltakstype?: string; } -function TiltaksgjennomforingsHeader({ +const TiltaksgjennomforingsHeader = ({ tiltaksgjennomforingsnavn, beskrivelseTiltaksgjennomforing, beskrivelseTiltakstype, -}: TiltaksgjennomforingsHeaderProps) { +}: TiltaksgjennomforingsHeaderProps) => { return (
{beskrivelseTiltakstype}
}
); -} +}; export default TiltaksgjennomforingsHeader; From 7c3d7e5a1f5ca26beea268297a8af1db00df5106 Mon Sep 17 00:00:00 2001 From: taniaholst Date: Wed, 8 Jun 2022 19:55:40 +0200 Subject: [PATCH 10/13] tc-122 oppdatert kode --- .../src/components/tabs/TiltaksdetaljerFane.tsx | 16 ++++++++-------- .../ViewTiltakstypeDetaljer.tsx | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/frontend/mulighetsrommet-veileder-flate/src/components/tabs/TiltaksdetaljerFane.tsx b/frontend/mulighetsrommet-veileder-flate/src/components/tabs/TiltaksdetaljerFane.tsx index d8b1985db4..39624c6156 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/components/tabs/TiltaksdetaljerFane.tsx +++ b/frontend/mulighetsrommet-veileder-flate/src/components/tabs/TiltaksdetaljerFane.tsx @@ -11,14 +11,14 @@ interface TiltaksdetaljerFaneProps { tiltaksgjennomforingTiltaksansvarlig: Tiltaksansvarlig; tiltaksgjennomforingArrangorinfo: Arrangor; tiltakstype: Tiltakstype; - faneinnhold: any; + tiltaksgjennomforing: any; } const TiltaksdetaljerFane = ({ tiltaksgjennomforingTiltaksansvarlig, tiltaksgjennomforingArrangorinfo, tiltakstype, - faneinnhold, + tiltaksgjennomforing, }: TiltaksdetaljerFaneProps) => { const faneoverskrifter = ['For hvem', 'Detaljer og innhold', 'Påmelding og varighet', 'Kontaktinfo', 'Innsikt']; @@ -31,25 +31,25 @@ const TiltaksdetaljerFane = ({ diff --git a/frontend/mulighetsrommet-veileder-flate/src/views/tiltaksgjennomforing-detaljer/ViewTiltakstypeDetaljer.tsx b/frontend/mulighetsrommet-veileder-flate/src/views/tiltaksgjennomforing-detaljer/ViewTiltakstypeDetaljer.tsx index bb5811739c..92896ed98c 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/views/tiltaksgjennomforing-detaljer/ViewTiltakstypeDetaljer.tsx +++ b/frontend/mulighetsrommet-veileder-flate/src/views/tiltaksgjennomforing-detaljer/ViewTiltakstypeDetaljer.tsx @@ -51,7 +51,7 @@ const ViewTiltakstypeDetaljer = () => { tiltaksgjennomforingTiltaksansvarlig={kontaktinfoTiltaksansvarlig} tiltaksgjennomforingArrangorinfo={kontaktinfoArrangor} tiltakstype={tiltakstype} - faneinnhold={faneinnhold} + tiltaksgjennomforing={faneinnhold} />
Date: Thu, 9 Jun 2022 10:19:16 +0200 Subject: [PATCH 11/13] =?UTF-8?q?tc-122=20oppdatert=20etter=20kommentarer?= =?UTF-8?q?=20p=C3=A5=20pr?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../package.json | 1 - .../tabell/TiltaksgjennomforingsTabell.tsx | 27 +++++++------------ .../tabs/kontaktinfofane/ArrangorInfo.tsx | 5 ++-- .../ViewTiltakstypeDetaljer.tsx | 14 ++++------ 4 files changed, 18 insertions(+), 29 deletions(-) diff --git a/frontend/mulighetsrommet-veileder-flate/package.json b/frontend/mulighetsrommet-veileder-flate/package.json index cebc73fc28..54eaba1420 100644 --- a/frontend/mulighetsrommet-veileder-flate/package.json +++ b/frontend/mulighetsrommet-veileder-flate/package.json @@ -35,7 +35,6 @@ "@navikt/frontendlogger": "^2.0.0", "@navikt/navspa": "^5.0.1", "@portabletext/react": "^1.0.6", - "@sanity/cli": "^2.30.0", "@sanity/client": "^3.3.0", "@vitejs/plugin-react": "^1.2.0", "classnames": "^2.3.1", diff --git a/frontend/mulighetsrommet-veileder-flate/src/components/tabell/TiltaksgjennomforingsTabell.tsx b/frontend/mulighetsrommet-veileder-flate/src/components/tabell/TiltaksgjennomforingsTabell.tsx index 8c63d4f3ce..cb2228fba7 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/components/tabell/TiltaksgjennomforingsTabell.tsx +++ b/frontend/mulighetsrommet-veileder-flate/src/components/tabell/TiltaksgjennomforingsTabell.tsx @@ -1,5 +1,5 @@ import React, { useState } from 'react'; -import { Pagination, Table, Alert, Heading, Loader } from '@navikt/ds-react'; +import { Pagination, Table, Alert, Heading, Loader, SortState } from '@navikt/ds-react'; import './Tabell.less'; import Lenke from '../lenke/Lenke'; import Kopiknapp from '../kopiknapp/Kopiknapp'; @@ -8,6 +8,7 @@ import StatusGul from '../../ikoner/Sirkel-gul.png'; import StatusRod from '../../ikoner/Sirkel-rod.png'; import { Tiltaksgjennomforing } from '../../../../mulighetsrommet-api-client'; import useTiltaksgjennomforing from '../../hooks/tiltaksgjennomforing/useTiltaksgjennomforing'; +import { SortDirection } from '@mswjs/data/lib/query/queryTypes'; const TiltaksgjennomforingsTabell = () => { const [sort, setSort] = useState(); @@ -17,11 +18,7 @@ const TiltaksgjennomforingsTabell = () => { return Math.ceil(tiltaksgjennomforing!.length / rowsPerPage); }; - const hentTiltaksgjennomforinger = useTiltaksgjennomforing(); - - const tiltaksgjennomforingerLoading = hentTiltaksgjennomforinger.isLoading; - const tiltaksgjennomforingerError = hentTiltaksgjennomforinger.isError; - const tiltaksgjennomforinger = hentTiltaksgjennomforinger.data; + const { data, isLoading, isError } = useTiltaksgjennomforing(); const tilgjengelighetsstatus = (status: string) => { //TODO endre denne når vi får inn data fra Arena @@ -51,9 +48,9 @@ const TiltaksgjennomforingsTabell = () => { return ( <> - {tiltaksgjennomforingerLoading && } - {tiltaksgjennomforingerError && Det har skjedd en feil} - {tiltaksgjennomforinger && ( + {isLoading && } + {isError && Det har skjedd en feil} + {data && (
{ - {tiltaksgjennomforinger!.length === 0 ? ( + {data!.length === 0 ? ( Det finnes ingen tiltakstyper med dette søket. ) : ( - tiltaksgjennomforinger! + data! .sort((a, b) => { if (sort) { const comparator = (a: any, b: any, orderBy: string | number) => { @@ -164,13 +161,9 @@ const TiltaksgjennomforingsTabell = () => {
- Viser {tiltaksgjennomforinger?.length} av {tiltaksgjennomforinger?.length} tiltak + Viser {data?.length} av {data?.length} tiltak - +
)} diff --git a/frontend/mulighetsrommet-veileder-flate/src/components/tabs/kontaktinfofane/ArrangorInfo.tsx b/frontend/mulighetsrommet-veileder-flate/src/components/tabs/kontaktinfofane/ArrangorInfo.tsx index ade5c991fe..e7c918b35d 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/components/tabs/kontaktinfofane/ArrangorInfo.tsx +++ b/frontend/mulighetsrommet-veileder-flate/src/components/tabs/kontaktinfofane/ArrangorInfo.tsx @@ -1,8 +1,9 @@ import { BodyShort, Heading, Label } from '@navikt/ds-react'; import React from 'react'; +import { Arrangor } from '../../../../../mulighetsrommet-api-client/src/models/Arrangor'; interface ArrangorProps { - arrangorinfo: any; + arrangorinfo: Arrangor; } const ArrangorInfo = ({ arrangorinfo }: ArrangorProps) => { @@ -17,7 +18,7 @@ const ArrangorInfo = ({ arrangorinfo }: ArrangorProps) => { {arrangorinfo.telefonnummer}
- + ' {arrangorinfo.epost}
diff --git a/frontend/mulighetsrommet-veileder-flate/src/views/tiltaksgjennomforing-detaljer/ViewTiltakstypeDetaljer.tsx b/frontend/mulighetsrommet-veileder-flate/src/views/tiltaksgjennomforing-detaljer/ViewTiltakstypeDetaljer.tsx index 92896ed98c..ae931d3c4e 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/views/tiltaksgjennomforing-detaljer/ViewTiltakstypeDetaljer.tsx +++ b/frontend/mulighetsrommet-veileder-flate/src/views/tiltaksgjennomforing-detaljer/ViewTiltakstypeDetaljer.tsx @@ -11,18 +11,14 @@ import { Alert, Loader } from '@navikt/ds-react'; const ViewTiltakstypeDetaljer = () => { const { tiltaksnummer } = useParams(); - const hentTiltaksgjennomforing = useTiltaksgjennomforingById(parseInt(tiltaksnummer!)); - - const tiltaksgjennomforing = hentTiltaksgjennomforing.data; - const tiltaksgjennomforingLoading = hentTiltaksgjennomforing.isLoading; - const tiltaksgjennomforingError = hentTiltaksgjennomforing.isError; + const { data, isLoading, isError } = useTiltaksgjennomforingById(parseInt(tiltaksnummer!)); return ( <> - {tiltaksgjennomforingLoading && } - {tiltaksgjennomforingError && Det har skjedd en feil} - {tiltaksgjennomforing && - tiltaksgjennomforing.map( + {isLoading && } + {isError && Det har skjedd en feil} + {data && + data.map( ({ _id, tiltaksgjennomforingNavn, From 605d14c2af24b92b76685998367395e02becdac6 Mon Sep 17 00:00:00 2001 From: taniaholst Date: Thu, 9 Jun 2022 10:22:27 +0200 Subject: [PATCH 12/13] =?UTF-8?q?tc-122=20oppdatert=20etter=20kommentarer?= =?UTF-8?q?=20p=C3=A5=20pr?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/mulighetsrommet-cms/schemas/tiltakstype.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/mulighetsrommet-cms/schemas/tiltakstype.js b/frontend/mulighetsrommet-cms/schemas/tiltakstype.js index 0e92eff00f..7293ff4d37 100644 --- a/frontend/mulighetsrommet-cms/schemas/tiltakstype.js +++ b/frontend/mulighetsrommet-cms/schemas/tiltakstype.js @@ -66,7 +66,7 @@ export default { validation: (Rule) => Rule.custom((field, context) => context.document.regelverkFil && field === undefined - ? "This field must not be empty." + ? "Dette feltet kan ikke være tomt." : true ), hidden: ({ document }) => !document?.regelverkFil, @@ -85,7 +85,7 @@ export default { validation: (Rule) => Rule.custom((field, context) => context.document.regelverkLenke && field === undefined - ? "This field must not be empty." + ? "Dette feltet kan ikke være tomt." : true ), hidden: ({ document }) => !document?.regelverkLenke, From 67b244872f9b3c03a0a39d8adce00146ab85c8fd Mon Sep 17 00:00:00 2001 From: Sindre Moldeklev Date: Thu, 9 Jun 2022 12:35:14 +0200 Subject: [PATCH 13/13] Bygg med mock kompilerer - Mocker mangler data --- .../src/components/filtrering/Filtermeny.tsx | 4 +- .../src/mock/api/handlers.ts | 29 +- .../src/mock/database.ts | 65 ++-- .../src/mock/entities/tiltaksgjennomforing.ts | 34 ++ .../entities/tiltaksgjennomf\303\270ring.ts" | 17 - .../src/mock/entities/tiltakstype.ts | 12 +- .../src/mock/fixtures/innsatsgrupper.ts | 2 +- .../mock/fixtures/tiltaksgjennomforinger.ts | 170 ++++++++-- .../src/mock/fixtures/tiltakstyper.ts | 306 +++++++----------- 9 files changed, 339 insertions(+), 300 deletions(-) create mode 100644 frontend/mulighetsrommet-veileder-flate/src/mock/entities/tiltaksgjennomforing.ts delete mode 100644 "frontend/mulighetsrommet-veileder-flate/src/mock/entities/tiltaksgjennomf\303\270ring.ts" diff --git a/frontend/mulighetsrommet-veileder-flate/src/components/filtrering/Filtermeny.tsx b/frontend/mulighetsrommet-veileder-flate/src/components/filtrering/Filtermeny.tsx index 8634e7eb75..6ba11839bd 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/components/filtrering/Filtermeny.tsx +++ b/frontend/mulighetsrommet-veileder-flate/src/components/filtrering/Filtermeny.tsx @@ -42,8 +42,8 @@ const Filtermeny = () => { data={ tiltakstyper.data?.map(tiltakstype => { return { - id: tiltakstype.id, - tittel: tiltakstype.navn, + id: tiltakstype._id, + tittel: tiltakstype.tiltakstypeNavn, }; }) ?? [] } diff --git a/frontend/mulighetsrommet-veileder-flate/src/mock/api/handlers.ts b/frontend/mulighetsrommet-veileder-flate/src/mock/api/handlers.ts index 124d3a14c5..cb164c9054 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/mock/api/handlers.ts +++ b/frontend/mulighetsrommet-veileder-flate/src/mock/api/handlers.ts @@ -1,9 +1,9 @@ import { rest, RestHandler } from 'msw'; import { db } from '../database'; -import { toTiltaksgjennomforing } from '../entities/tiltaksgjennomføring'; +import { toTiltaksgjennomforing } from '../entities/tiltaksgjennomforing'; import { toTiltakstype } from '../entities/tiltakstype'; -import { badReq, notFound, ok } from './responses'; import { mockFeatures } from './features'; +import { notFound, ok } from './responses'; export const handlers: RestHandler[] = [ rest.get('*/api/feature', (req, res, ctx) => { @@ -17,32 +17,7 @@ export const handlers: RestHandler[] = [ rest.get('*/api/v1/tiltakstyper', () => { return ok(db.tiltakstype.getAll().map(toTiltakstype)); }), - rest.get('*/api/v1/tiltakstyper/:tiltakskode', req => { - const { tiltakskode } = req.params as any; - if (!tiltakskode) { - return badReq(); - } - - const entity = db.tiltakstype.findFirst({ - where: { tiltakskode: { equals: tiltakskode } }, - }); - - if (!entity) { - return notFound(); - } - - return ok(toTiltakstype(entity)); - }), - rest.get('*/api/v1/tiltakstyper/:tiltakskode/tiltaksgjennomforinger', req => { - const { tiltakskode } = req.params as any; - - const items = db.tiltaksgjennomforing.findMany({ - where: { tiltakskode: { equals: tiltakskode } }, - }); - - return ok(items.map(toTiltaksgjennomforing)); - }), rest.get('*/api/v1/tiltaksgjennomforinger', req => { return ok(db.tiltaksgjennomforing.getAll().map(toTiltaksgjennomforing)); }), diff --git a/frontend/mulighetsrommet-veileder-flate/src/mock/database.ts b/frontend/mulighetsrommet-veileder-flate/src/mock/database.ts index dc900af017..df22a18865 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/mock/database.ts +++ b/frontend/mulighetsrommet-veileder-flate/src/mock/database.ts @@ -1,6 +1,6 @@ import { nullable, oneOf, primaryKey } from '@mswjs/data'; import faker from 'faker'; -import { innsatsgrupper } from './fixtures/innsatsgrupper'; +import { innsatsgrupperFixture } from './fixtures/innsatsgrupper'; import { tiltakstyper } from './fixtures/tiltakstyper'; import { createMockDatabase, idAutoIncrement } from './helpers'; import { Tiltakstype } from '../../../mulighetsrommet-api-client'; @@ -12,32 +12,62 @@ export const definition = { }, tiltakstype: { id: idAutoIncrement(), - innsatsgruppe: oneOf('innsatsgruppe', { nullable: true }), - sanityId: nullable(Number), - tiltakskode: String, - navn: String, - fraDato: nullable(String), - tilDato: nullable(String), - createdBy: nullable(String), - createdAt: nullable(String), - updatedBy: nullable(String), - updatedAt: nullable(String), + tiltakstypeNavn: String, + beskrivelse: String, + innsatsgruppe: String, + varighet: String, + regelverkFil: String, //skal være fil + regelverkFilNavn: String, + regelverkLenke: String, + regelverkLenkeNavn: String, + faneinnhold: { + forHvemInfoboks: String, + forHvem: Object, + detaljerOgInnholdInfoboks: String, + detaljerOgInnhold: Object, + pameldingOgVarighetInfoboks: String, + pameldingOgVarighet: Object, + }, }, tiltaksgjennomforing: { id: idAutoIncrement(), - tiltakskode: String, - tiltaksnummer: String, - tittel: String, + tiltakstype: Object, + tiltaksgjennomforingNavn: String, beskrivelse: String, - fraDato: Date, - tilDato: Date, + tiltaksnummer: Number, + kontaktinfoArrangor: { + id: Number, + selskapsnavn: String, + telefonnummer: String, + epost: String, + adresse: String, + }, + lokasjon: String, + enheter: { fylke: String }, + oppstart: String, + oppstartsdato: Date, + faneinnhold: { + forHvemInfoboks: String, + forHvem: Object, + detaljerOgInnholdInfoboks: String, + detaljerOgInnhold: Object, + pameldingOgVarighetInfoboks: String, + pameldingOgVarighet: Object, + }, + kontaktinfoTiltaksansvarlig: { + id: Number, + navn: String, + enhet: String, + telefonnummer: String, + epost: String, + }, }, }; export type DatabaseDictionary = typeof definition; export const db = createMockDatabase(definition, (db: any) => { - innsatsgrupper.forEach(db.innsatsgruppe.create); + innsatsgrupperFixture.forEach(db.innsatsgruppe.create); tiltakstyper.forEach(({ innsatsgruppe, ...data }) => { const relatedInnsatsgruppe = innsatsgruppe @@ -53,7 +83,6 @@ export const db = createMockDatabase(definition, (db: any) => { db.tiltakstype.getAll().forEach((tiltakstype: Tiltakstype) => { for (let index = 0; index < faker.datatype.number({ min: 1, max: 5 }); index++) { db.tiltaksgjennomforing.create({ - tiltakskode: tiltakstype.tiltakskode, tiltaksnummer: faker.datatype.number({ min: 100000, max: 999999 }).toString(), tittel: `Kjøreopplæring av ${faker.vehicle.manufacturer()}`, beskrivelse: faker.lorem.paragraph(1), diff --git a/frontend/mulighetsrommet-veileder-flate/src/mock/entities/tiltaksgjennomforing.ts b/frontend/mulighetsrommet-veileder-flate/src/mock/entities/tiltaksgjennomforing.ts new file mode 100644 index 0000000000..e2a1a64cea --- /dev/null +++ b/frontend/mulighetsrommet-veileder-flate/src/mock/entities/tiltaksgjennomforing.ts @@ -0,0 +1,34 @@ +import { Entity } from '@mswjs/data/lib/glossary'; +import { Tiltaksgjennomforing, Tiltakstype } from 'mulighetsrommet-api-client'; +import { DatabaseDictionary } from '../database'; + +export type TiltaksgjennomforingEntity = Entity; + +export function toTiltaksgjennomforing(entity: TiltaksgjennomforingEntity): Tiltaksgjennomforing { + return { + _id: entity.id, + tiltaksnummer: entity.tiltaksnummer, + tiltaksgjennomforingNavn: entity.tiltaksgjennomforingNavn, + beskrivelse: entity.beskrivelse, + kontaktinfoArrangor: { + _id: entity.kontaktinfoArrangor.id!, + selskapsnavn: entity.kontaktinfoArrangor.selskapsnavn!, + adresse: entity.kontaktinfoArrangor.adresse!, + epost: entity.kontaktinfoArrangor.epost!, + telefonnummer: entity.kontaktinfoArrangor.telefonnummer!, + }, + tiltakstype: entity.tiltakstype as Tiltakstype, + lokasjon: entity.lokasjon, + enheter: { + fylke: entity.enheter.fylke!, + }, + oppstart: entity.oppstart, + kontaktinfoTiltaksansvarlig: { + _id: entity.kontaktinfoTiltaksansvarlig.id!, + enhet: entity.kontaktinfoTiltaksansvarlig.enhet!, + epost: entity.kontaktinfoTiltaksansvarlig.epost!, + telefonnummer: entity.kontaktinfoTiltaksansvarlig.telefonnummer!, + navn: entity.kontaktinfoTiltaksansvarlig.navn!, + }, + }; +} diff --git "a/frontend/mulighetsrommet-veileder-flate/src/mock/entities/tiltaksgjennomf\303\270ring.ts" "b/frontend/mulighetsrommet-veileder-flate/src/mock/entities/tiltaksgjennomf\303\270ring.ts" deleted file mode 100644 index ddc7ce1f2f..0000000000 --- "a/frontend/mulighetsrommet-veileder-flate/src/mock/entities/tiltaksgjennomf\303\270ring.ts" +++ /dev/null @@ -1,17 +0,0 @@ -import { Entity } from '@mswjs/data/lib/glossary'; -import { Tiltaksgjennomforing, Tiltakskode } from 'mulighetsrommet-api-client'; -import { DatabaseDictionary } from '../database'; - -export type TiltaksgjennomforingEntity = Entity; - -export function toTiltaksgjennomforing(entity: TiltaksgjennomforingEntity): Tiltaksgjennomforing { - return { - id: entity.id, - tiltaksnummer: entity.tiltaksnummer, - tiltakskode: Tiltakskode[entity.tiltakskode as keyof typeof Tiltakskode], - tittel: entity.tittel, - beskrivelse: entity.beskrivelse, - fraDato: entity.fraDato, - tilDato: entity.tilDato, - }; -} diff --git a/frontend/mulighetsrommet-veileder-flate/src/mock/entities/tiltakstype.ts b/frontend/mulighetsrommet-veileder-flate/src/mock/entities/tiltakstype.ts index 19d9dde5cb..6710ce3ace 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/mock/entities/tiltakstype.ts +++ b/frontend/mulighetsrommet-veileder-flate/src/mock/entities/tiltakstype.ts @@ -1,17 +1,13 @@ import { Entity } from '@mswjs/data/lib/glossary'; -import { Tiltakskode, Tiltakstype } from 'mulighetsrommet-api-client'; +import { Tiltakstype } from 'mulighetsrommet-api-client'; import { DatabaseDictionary } from '../database'; export type TiltakstypeEntity = Entity; export function toTiltakstype(entity: TiltakstypeEntity): Tiltakstype { return { - id: entity.id, - innsatsgruppe: entity.innsatsgruppe?.id ?? null, - sanityId: entity.sanityId, - navn: entity.navn, - tiltakskode: Tiltakskode[entity.tiltakskode as keyof typeof Tiltakskode], - fraDato: entity.fraDato, - tilDato: entity.tilDato, + _id: entity.id, + innsatsgruppe: entity.innsatsgruppe!!, + tiltakstypeNavn: entity.tiltakstypeNavn, }; } diff --git a/frontend/mulighetsrommet-veileder-flate/src/mock/fixtures/innsatsgrupper.ts b/frontend/mulighetsrommet-veileder-flate/src/mock/fixtures/innsatsgrupper.ts index 8a00cbca48..79f1fbabdb 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/mock/fixtures/innsatsgrupper.ts +++ b/frontend/mulighetsrommet-veileder-flate/src/mock/fixtures/innsatsgrupper.ts @@ -1,6 +1,6 @@ import { Innsatsgruppe } from 'mulighetsrommet-api-client'; -export const innsatsgrupper: Innsatsgruppe[] = [ +export const innsatsgrupperFixture: Innsatsgruppe[] = [ { id: 1, navn: 'Standardinnsats', diff --git a/frontend/mulighetsrommet-veileder-flate/src/mock/fixtures/tiltaksgjennomforinger.ts b/frontend/mulighetsrommet-veileder-flate/src/mock/fixtures/tiltaksgjennomforinger.ts index 47fb6675a1..fbd9ee7300 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/mock/fixtures/tiltaksgjennomforinger.ts +++ b/frontend/mulighetsrommet-veileder-flate/src/mock/fixtures/tiltaksgjennomforinger.ts @@ -2,48 +2,158 @@ import faker from 'faker'; import { Tiltaksgjennomforing, Tiltakskode, Tiltakstype } from '../../../../mulighetsrommet-api-client'; export const tiltaksgjennomforinger: Tiltaksgjennomforing[] = [ { - id: faker.datatype.number({ min: 100000, max: 999999 }), - tittel: 'Opplæring', + _id: faker.datatype.number({ min: 100000, max: 999999 }), + tiltaksgjennomforingNavn: 'Opplæring', beskrivelse: faker.lorem.paragraph(3), - tiltakskode: Tiltakskode.ABIST, - tiltaksnummer: faker.datatype.number({ min: 100000, max: 999999 }).toString(), - fraDato: faker.date.future(2).toISOString(), - tilDato: faker.date.future(2).toISOString(), + + tiltaksnummer: faker.datatype.number({ min: 100000, max: 999999 }), + tiltakstype: { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + innsatsgruppe: '', + tiltakstypeNavn: '', + }, + kontaktinfoArrangor: { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + adresse: '', + epost: '', + selskapsnavn: '', + telefonnummer: '', + }, + lokasjon: '', + enheter: { + fylke: '', + }, + oppstart: '', + kontaktinfoTiltaksansvarlig: { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + enhet: '', + epost: '', + navn: '', + telefonnummer: '', + }, }, { - id: faker.datatype.number({ min: 100000, max: 999999 }), - tittel: 'Opplæring', + _id: faker.datatype.number({ min: 100000, max: 999999 }), + tiltaksgjennomforingNavn: 'Opplæring', beskrivelse: faker.lorem.paragraph(3), - tiltakskode: Tiltakskode.FUNKSJASS, - tiltaksnummer: faker.datatype.number({ min: 100000, max: 999999 }).toString(), - fraDato: faker.date.future(2).toISOString(), - tilDato: faker.date.future(2).toISOString(), + + tiltaksnummer: faker.datatype.number({ min: 100000, max: 999999 }), + tiltakstype: { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + innsatsgruppe: '', + tiltakstypeNavn: '', + }, + kontaktinfoArrangor: { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + adresse: '', + epost: '', + selskapsnavn: '', + telefonnummer: '', + }, + lokasjon: '', + enheter: { + fylke: '', + }, + oppstart: '', + kontaktinfoTiltaksansvarlig: { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + enhet: '', + epost: '', + navn: '', + telefonnummer: '', + }, }, { - id: faker.datatype.number({ min: 100000, max: 999999 }), - tittel: 'Opplæring', + _id: faker.datatype.number({ min: 100000, max: 999999 }), + tiltaksgjennomforingNavn: 'Opplæring', beskrivelse: faker.lorem.paragraph(3), - tiltakskode: Tiltakskode.UTVOPPFOPL, - tiltaksnummer: faker.datatype.number({ min: 100000, max: 999999 }).toString(), - fraDato: faker.date.future(2).toISOString(), - tilDato: faker.date.future(2).toISOString(), + + tiltaksnummer: faker.datatype.number({ min: 100000, max: 999999 }), + tiltakstype: { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + innsatsgruppe: '', + tiltakstypeNavn: '', + }, + kontaktinfoArrangor: { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + adresse: '', + epost: '', + selskapsnavn: '', + telefonnummer: '', + }, + lokasjon: '', + enheter: { + fylke: '', + }, + oppstart: '', + kontaktinfoTiltaksansvarlig: { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + enhet: '', + epost: '', + navn: '', + telefonnummer: '', + }, }, { - id: faker.datatype.number({ min: 100000, max: 999999 }), - tittel: 'Opplæring', + _id: faker.datatype.number({ min: 100000, max: 999999 }), + tiltaksgjennomforingNavn: 'Opplæring', beskrivelse: faker.lorem.paragraph(3), - tiltakskode: Tiltakskode.AVKLARAG, - tiltaksnummer: faker.datatype.number({ min: 100000, max: 999999 }).toString(), - fraDato: faker.date.future(2).toISOString(), - tilDato: faker.date.future(2).toISOString(), + + tiltaksnummer: faker.datatype.number({ min: 100000, max: 999999 }), + tiltakstype: { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + innsatsgruppe: '', + tiltakstypeNavn: '', + }, + kontaktinfoArrangor: { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + adresse: '', + epost: '', + selskapsnavn: '', + telefonnummer: '', + }, + lokasjon: '', + enheter: { + fylke: '', + }, + oppstart: '', + kontaktinfoTiltaksansvarlig: { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + enhet: '', + epost: '', + navn: '', + telefonnummer: '', + }, }, { - id: faker.datatype.number({ min: 100000, max: 999999 }), - tittel: 'Opplæring', + _id: faker.datatype.number({ min: 100000, max: 999999 }), + tiltaksgjennomforingNavn: 'Opplæring', beskrivelse: faker.lorem.paragraph(3), - tiltakskode: Tiltakskode.GRUPPEAMO, - tiltaksnummer: faker.datatype.number({ min: 100000, max: 999999 }).toString(), - fraDato: faker.date.future(2).toISOString(), - tilDato: faker.date.future(2).toISOString(), + + tiltaksnummer: faker.datatype.number({ min: 100000, max: 999999 }), + tiltakstype: { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + innsatsgruppe: '', + tiltakstypeNavn: '', + }, + kontaktinfoArrangor: { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + adresse: '', + epost: '', + selskapsnavn: '', + telefonnummer: '', + }, + lokasjon: '', + enheter: { + fylke: '', + }, + oppstart: '', + kontaktinfoTiltaksansvarlig: { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + enhet: '', + epost: '', + navn: '', + telefonnummer: '', + }, }, ]; diff --git a/frontend/mulighetsrommet-veileder-flate/src/mock/fixtures/tiltakstyper.ts b/frontend/mulighetsrommet-veileder-flate/src/mock/fixtures/tiltakstyper.ts index 6476be5237..e4aea6a988 100644 --- a/frontend/mulighetsrommet-veileder-flate/src/mock/fixtures/tiltakstyper.ts +++ b/frontend/mulighetsrommet-veileder-flate/src/mock/fixtures/tiltakstyper.ts @@ -1,202 +1,114 @@ import faker from 'faker'; -import { Tiltakskode, Tiltakstype } from '../../../../mulighetsrommet-api-client'; +import { Tiltakstype } from '../../../../mulighetsrommet-api-client'; export const tiltakstyper: Tiltakstype[] = [ { - id: faker.datatype.number({ min: 100000, max: 999999 }), - innsatsgruppe: 1, - navn: 'Opplæring', - tiltakskode: Tiltakskode.ABIST, - sanityId: null, - fraDato: faker.date.future(2).toISOString(), - tilDato: faker.date.future(2).toISOString(), - }, - { - id: faker.datatype.number({ min: 100000, max: 999999 }), - innsatsgruppe: 1, - navn: 'Funksjonsassistanse', - tiltakskode: Tiltakskode.FUNKSJASS, - sanityId: null, - fraDato: faker.date.future(2).toISOString(), - tilDato: faker.date.future(2).toISOString(), - }, - { - id: faker.datatype.number({ min: 100000, max: 999999 }), - innsatsgruppe: 1, - navn: 'Utvidet oppfølging', - tiltakskode: Tiltakskode.UTVOPPFOPL, - sanityId: null, - fraDato: faker.date.future(2).toISOString(), - tilDato: faker.date.future(2).toISOString(), - }, - { - id: faker.datatype.number({ min: 100000, max: 999999 }), - innsatsgruppe: 1, - navn: 'Avklaring', - tiltakskode: Tiltakskode.AVKLARAG, - sanityId: null, - fraDato: faker.date.future(2).toISOString(), - tilDato: faker.date.future(2).toISOString(), - }, - { - id: faker.datatype.number({ min: 100000, max: 999999 }), - innsatsgruppe: 1, - navn: 'Arbeidsmarkedsopplæring (AMO)', - tiltakskode: Tiltakskode.GRUPPEAMO, - sanityId: null, - fraDato: faker.date.future(2).toISOString(), - tilDato: faker.date.future(2).toISOString(), - }, - { - id: faker.datatype.number({ min: 100000, max: 999999 }), - innsatsgruppe: 1, - navn: 'Ekspertbistand', - tiltakskode: Tiltakskode.EKSPEBIST, - sanityId: null, - fraDato: faker.date.future(2).toISOString(), - tilDato: faker.date.future(2).toISOString(), - }, - { - id: faker.datatype.number({ min: 100000, max: 999999 }), - innsatsgruppe: 1, - navn: 'Jobbklubb', - tiltakskode: Tiltakskode.JOBBKLUBB, - sanityId: null, - fraDato: faker.date.future(2).toISOString(), - tilDato: faker.date.future(2).toISOString(), - }, - { - id: faker.datatype.number({ min: 100000, max: 999999 }), - innsatsgruppe: 2, - navn: 'Oppfølging', - tiltakskode: Tiltakskode.ABOPPF, - sanityId: null, - fraDato: faker.date.future(2).toISOString(), - tilDato: faker.date.future(2).toISOString(), - }, - { - id: faker.datatype.number({ min: 100000, max: 999999 }), - innsatsgruppe: 2, - navn: 'Digital jobbklubb', - tiltakskode: Tiltakskode.DIGIOPPARB, - sanityId: null, - fraDato: faker.date.future(2).toISOString(), - tilDato: faker.date.future(2).toISOString(), - }, - { - id: faker.datatype.number({ min: 100000, max: 999999 }), - innsatsgruppe: 2, - navn: 'Fag- og yrkesopplæring', - tiltakskode: Tiltakskode.ENKFAGYRKE, - sanityId: null, - fraDato: faker.date.future(2).toISOString(), - tilDato: faker.date.future(2).toISOString(), - }, - { - id: faker.datatype.number({ min: 100000, max: 999999 }), - innsatsgruppe: 2, - navn: 'Arbeidstrening', - tiltakskode: Tiltakskode.ARBTREN, - sanityId: null, - fraDato: faker.date.future(2).toISOString(), - tilDato: faker.date.future(2).toISOString(), - }, - { - id: faker.datatype.number({ min: 100000, max: 999999 }), - innsatsgruppe: 2, - navn: 'Arbeidsforberedende trening', - tiltakskode: Tiltakskode.ARBRRHDAG, - sanityId: null, - fraDato: faker.date.future(2).toISOString(), - tilDato: faker.date.future(2).toISOString(), - }, - { - id: faker.datatype.number({ min: 100000, max: 999999 }), - innsatsgruppe: 2, - navn: 'Midlertidig lønnstilskudd', - tiltakskode: Tiltakskode.MIDLONTIL, - sanityId: null, - fraDato: faker.date.future(2).toISOString(), - tilDato: faker.date.future(2).toISOString(), - }, - { - id: faker.datatype.number({ min: 100000, max: 999999 }), - innsatsgruppe: 2, - navn: 'Varig lønnstilskudd', - tiltakskode: Tiltakskode.MIDLONTIL, - sanityId: null, - fraDato: faker.date.future(2).toISOString(), - tilDato: faker.date.future(2).toISOString(), - }, - { - id: faker.datatype.number({ min: 100000, max: 999999 }), - innsatsgruppe: 3, - navn: 'Varig tilrettelagt arbeid i skjermet virksomhet', - tiltakskode: Tiltakskode.TILRTILSK, - sanityId: null, - fraDato: faker.date.future(2).toISOString(), - tilDato: faker.date.future(2).toISOString(), - }, - { - id: faker.datatype.number({ min: 100000, max: 999999 }), - innsatsgruppe: 3, - navn: 'Varig tilrettelagt arbeid i ordinær virksomhet', - tiltakskode: Tiltakskode.TILRETTEL, - sanityId: null, - fraDato: faker.date.future(2).toISOString(), - tilDato: faker.date.future(2).toISOString(), - }, - { - id: faker.datatype.number({ min: 100000, max: 999999 }), - innsatsgruppe: 3, - navn: 'Inkluderingstilskudd', - tiltakskode: Tiltakskode.ABTBOPPF, - sanityId: null, - fraDato: faker.date.future(2).toISOString(), - tilDato: faker.date.future(2).toISOString(), - }, - { - id: faker.datatype.number({ min: 100000, max: 999999 }), - innsatsgruppe: 3, - navn: 'Funksjonsassistanse i arbeidslivet', - tiltakskode: Tiltakskode.INKLUTILS, - sanityId: null, - fraDato: faker.date.future(2).toISOString(), - tilDato: faker.date.future(2).toISOString(), - }, - { - id: faker.datatype.number({ min: 100000, max: 999999 }), - innsatsgruppe: 3, - navn: 'Mentor', - tiltakskode: Tiltakskode.MENTOR, - sanityId: null, - fraDato: faker.date.future(2).toISOString(), - tilDato: faker.date.future(2).toISOString(), - }, - { - id: faker.datatype.number({ min: 100000, max: 999999 }), - innsatsgruppe: 3, - navn: 'Arbeidsrettet rehabilitering', - tiltakskode: Tiltakskode.ARBRRHBAG, - sanityId: null, - fraDato: faker.date.future(2).toISOString(), - tilDato: faker.date.future(2).toISOString(), - }, - { - id: faker.datatype.number({ min: 100000, max: 999999 }), - innsatsgruppe: 3, - navn: 'Individuell jobbstøtte', - tiltakskode: Tiltakskode.INDJOBSTOT, - sanityId: null, - fraDato: faker.date.future(2).toISOString(), - tilDato: faker.date.future(2).toISOString(), - }, - { - id: faker.datatype.number({ min: 100000, max: 999999 }), - innsatsgruppe: 4, - navn: 'Tilskudd til sommerjobb', - tiltakskode: Tiltakskode.TILSJOBB, - sanityId: null, - fraDato: faker.date.future(2).toISOString(), - tilDato: faker.date.future(2).toISOString(), + _id: faker.datatype.number({ min: 100000, max: 999999 }), + innsatsgruppe: '1', + tiltakstypeNavn: 'Opplæring', + }, + { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + innsatsgruppe: '1', + tiltakstypeNavn: 'Funksjonsassistanse', + }, + { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + innsatsgruppe: '1', + tiltakstypeNavn: 'Utvidet oppfølging', + }, + { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + innsatsgruppe: '1', + tiltakstypeNavn: 'Avklaring', + }, + { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + innsatsgruppe: '1', + tiltakstypeNavn: 'Arbeidsmarkedsopplæring (AMO)', + }, + { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + innsatsgruppe: '1', + tiltakstypeNavn: 'Ekspertbistand', + }, + { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + innsatsgruppe: '1', + tiltakstypeNavn: 'Jobbklubb', + }, + { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + innsatsgruppe: '2', + tiltakstypeNavn: 'Oppfølging', + }, + { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + innsatsgruppe: '2', + tiltakstypeNavn: 'Digital jobbklubb', + }, + { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + innsatsgruppe: '2', + tiltakstypeNavn: 'Fag- og yrkesopplæring', + }, + { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + innsatsgruppe: '2', + tiltakstypeNavn: 'Arbeidstrening', + }, + { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + innsatsgruppe: '2', + tiltakstypeNavn: 'Arbeidsforberedende trening', + }, + { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + innsatsgruppe: '2', + tiltakstypeNavn: 'Midlertidig lønnstilskudd', + }, + { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + innsatsgruppe: '2', + tiltakstypeNavn: 'Varig lønnstilskudd', + }, + { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + innsatsgruppe: '3', + tiltakstypeNavn: 'Varig tilrettelagt arbeid i skjermet virksomhet', + }, + { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + innsatsgruppe: '3', + tiltakstypeNavn: 'Varig tilrettelagt arbeid i ordinær virksomhet', + }, + { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + innsatsgruppe: '3', + tiltakstypeNavn: 'Inkluderingstilskudd', + }, + { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + innsatsgruppe: '3', + tiltakstypeNavn: 'Funksjonsassistanse i arbeidslivet', + }, + { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + innsatsgruppe: '3', + tiltakstypeNavn: 'Mentor', + }, + { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + innsatsgruppe: '3', + tiltakstypeNavn: 'Arbeidsrettet rehabilitering', + }, + { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + innsatsgruppe: '3', + tiltakstypeNavn: 'Individuell jobbstøtte', + }, + { + _id: faker.datatype.number({ min: 100000, max: 999999 }), + innsatsgruppe: '4', + tiltakstypeNavn: 'Tilskudd til sommerjobb', }, ];