From d9f6c88f3d2326278f822ffc573b15e2a4853262 Mon Sep 17 00:00:00 2001 From: Thomas Svendal Date: Mon, 18 Sep 2023 21:06:38 +0200 Subject: [PATCH 1/3] VIPPS Release fix (#883) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Martin Clementz Co-authored-by: Jonatan Co-authored-by: martcl Co-authored-by: Mads Nylund <73914541+MadsNyl@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> fixed countdowntimer (#875) Fix/payment (#877) fix: not pay required (#881) --- CHANGELOG.md | 1 + package.json | 6 +- pnpm-lock.yaml | 217 ++++++++++++++---- src/components/miscellaneous/TihldeLogo.tsx | 5 - src/components/navigation/Topbar.tsx | 7 +- .../components/EventEditor.tsx | 21 +- .../components/CountdownTimer.tsx | 13 +- .../EventDetails/components/EventRenderer.tsx | 12 +- src/pages/Landing/components/Wave.tsx | 7 +- vite.config.ts | 3 + 10 files changed, 200 insertions(+), 92 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 17ae7b865..70c248f71 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ --- ## Neste versjon +## Versjon 2023.09.11 - ✨ **Tracking**. Bruker Vecel events til å tracke brukerens aktivitet på nettsiden. - 🦟 **Arrangement**. Knapp for å opprette arrangemnt på gruppesiden vises kun for admins. diff --git a/package.json b/package.json index 65096c03e..c7cb18392 100644 --- a/package.json +++ b/package.json @@ -14,13 +14,13 @@ "@emotion/styled": "^11.11.0", "@mui/icons-material": "^5.14.8", "@mui/lab": "^5.0.0-alpha.60", - "@mui/material": "^5.10.7", + "@mui/material": "^5.14.9", "@vercel/analytics": "1.0.2", "browser-image-compression": "^2.0.0", "canvas-confetti": "^1.6.0", "constate": "^3.3.0", "copy-to-clipboard": "^3.3.1", - "date-fns": "^2.28.0", + "date-fns": "^2.30.0", "delayed-scroll-restoration-polyfill": "^0.1.1", "history": "^5.3.0", "immutability-helper": "^3.1.1", @@ -66,7 +66,7 @@ "@typescript-eslint/parser": "^5.38.1", "@vitejs/plugin-react": "^1.3.1", "eslint": "^8.48.0", - "eslint-config-prettier": "^8.5.0", + "eslint-config-prettier": "^9.0.0", "eslint-plugin-import-helpers": "^1.3.1", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-react": "^7.33.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9cb1f23b1..522194840 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,7 +13,7 @@ dependencies: version: 3.0.0-beta.2(@devexpress/dx-core@3.0.0-beta.2)(@devexpress/dx-react-core@3.0.0-beta.2)(moment@2.29.4)(react-dom@17.0.2)(react@17.0.2) '@devexpress/dx-react-scheduler-material-ui': specifier: ^3.0.0-beta.2 - version: 3.0.0-beta.2(@devexpress/dx-react-core@3.0.0-beta.2)(@devexpress/dx-react-scheduler@3.0.0-beta.2)(@devexpress/dx-scheduler-core@3.0.0-beta.2)(@emotion/react@11.9.0)(@emotion/styled@11.11.0)(@mui/icons-material@5.14.8)(@mui/lab@5.0.0-alpha.60)(@mui/material@5.10.7)(@mui/styles@5.14.7)(moment@2.29.4)(react@17.0.2) + version: 3.0.0-beta.2(@devexpress/dx-react-core@3.0.0-beta.2)(@devexpress/dx-react-scheduler@3.0.0-beta.2)(@devexpress/dx-scheduler-core@3.0.0-beta.2)(@emotion/react@11.9.0)(@emotion/styled@11.11.0)(@mui/icons-material@5.14.8)(@mui/lab@5.0.0-alpha.60)(@mui/material@5.14.9)(@mui/styles@5.14.7)(moment@2.29.4)(react@17.0.2) '@emotion/cache': specifier: ^11.11.0 version: 11.11.0 @@ -25,13 +25,13 @@ dependencies: version: 11.11.0(@emotion/react@11.9.0)(@types/react@17.0.37)(react@17.0.2) '@mui/icons-material': specifier: ^5.14.8 - version: 5.14.8(@mui/material@5.10.7)(@types/react@17.0.37)(react@17.0.2) + version: 5.14.8(@mui/material@5.14.9)(@types/react@17.0.37)(react@17.0.2) '@mui/lab': specifier: ^5.0.0-alpha.60 - version: 5.0.0-alpha.60(@emotion/react@11.9.0)(@emotion/styled@11.11.0)(@mui/material@5.10.7)(@types/react@17.0.37)(date-fns@2.28.0)(moment@2.29.4)(react-dom@17.0.2)(react@17.0.2) + version: 5.0.0-alpha.60(@emotion/react@11.9.0)(@emotion/styled@11.11.0)(@mui/material@5.14.9)(@types/react@17.0.37)(date-fns@2.30.0)(moment@2.29.4)(react-dom@17.0.2)(react@17.0.2) '@mui/material': - specifier: ^5.10.7 - version: 5.10.7(@emotion/react@11.9.0)(@emotion/styled@11.11.0)(@types/react@17.0.37)(react-dom@17.0.2)(react@17.0.2) + specifier: ^5.14.9 + version: 5.14.9(@emotion/react@11.9.0)(@emotion/styled@11.11.0)(@types/react@17.0.37)(react-dom@17.0.2)(react@17.0.2) '@vercel/analytics': specifier: 1.0.2 version: 1.0.2 @@ -48,8 +48,8 @@ dependencies: specifier: ^3.3.1 version: 3.3.1 date-fns: - specifier: ^2.28.0 - version: 2.28.0 + specifier: ^2.30.0 + version: 2.30.0 delayed-scroll-restoration-polyfill: specifier: ^0.1.1 version: 0.1.1 @@ -152,14 +152,14 @@ devDependencies: specifier: ^8.48.0 version: 8.48.0 eslint-config-prettier: - specifier: ^8.5.0 - version: 8.5.0(eslint@8.48.0) + specifier: ^9.0.0 + version: 9.0.0(eslint@8.48.0) eslint-plugin-import-helpers: specifier: ^1.3.1 version: 1.3.1(eslint@8.48.0) eslint-plugin-prettier: specifier: ^4.2.1 - version: 4.2.1(eslint-config-prettier@8.5.0)(eslint@8.48.0)(prettier@2.6.0) + version: 4.2.1(eslint-config-prettier@9.0.0)(eslint@8.48.0)(prettier@2.6.0) eslint-plugin-react: specifier: ^7.33.2 version: 7.33.2(eslint@8.48.0) @@ -460,7 +460,7 @@ packages: resolution: {integrity: sha512-+EQE8xZhRM/hsY0CDTVyayMDDY5ihc4MqXCrPxooKw19yAzUIC6uUqsZeaOFNL9YKTNxYKrJP5DFgE8o5xRCOw==} dev: false - /@date-io/date-fns@2.17.0(date-fns@2.28.0): + /@date-io/date-fns@2.17.0(date-fns@2.30.0): resolution: {integrity: sha512-L0hWZ/mTpy3Gx/xXJ5tq5CzHo0L7ry6KEO9/w/JWiFWFLZgiNVo3ex92gOl3zmzjHqY/3Ev+5sehAr8UnGLEng==} peerDependencies: date-fns: ^2.0.0 @@ -469,7 +469,7 @@ packages: optional: true dependencies: '@date-io/core': 2.17.0 - date-fns: 2.28.0 + date-fns: 2.30.0 dev: false /@date-io/dayjs@2.17.0: @@ -531,7 +531,7 @@ packages: react-dom: 17.0.2(react@17.0.2) dev: false - /@devexpress/dx-react-scheduler-material-ui@3.0.0-beta.2(@devexpress/dx-react-core@3.0.0-beta.2)(@devexpress/dx-react-scheduler@3.0.0-beta.2)(@devexpress/dx-scheduler-core@3.0.0-beta.2)(@emotion/react@11.9.0)(@emotion/styled@11.11.0)(@mui/icons-material@5.14.8)(@mui/lab@5.0.0-alpha.60)(@mui/material@5.10.7)(@mui/styles@5.14.7)(moment@2.29.4)(react@17.0.2): + /@devexpress/dx-react-scheduler-material-ui@3.0.0-beta.2(@devexpress/dx-react-core@3.0.0-beta.2)(@devexpress/dx-react-scheduler@3.0.0-beta.2)(@devexpress/dx-scheduler-core@3.0.0-beta.2)(@emotion/react@11.9.0)(@emotion/styled@11.11.0)(@mui/icons-material@5.14.8)(@mui/lab@5.0.0-alpha.60)(@mui/material@5.14.9)(@mui/styles@5.14.7)(moment@2.29.4)(react@17.0.2): resolution: {integrity: sha512-yFP8TsMduwvyLfUL70j6kTK3SQvLKrTBqi9Ze2GXloWveoqvPqmtZ3MxeLL20KuoHk8SBPjDJgTOA9LapJm60g==} peerDependencies: '@devexpress/dx-react-core': 3.0.0-beta.2 @@ -552,10 +552,10 @@ packages: '@devexpress/dx-scheduler-core': 3.0.0-beta.2(@devexpress/dx-core@3.0.0-beta.2) '@emotion/react': 11.9.0(@babel/core@7.22.15)(@types/react@17.0.37)(react@17.0.2) '@emotion/styled': 11.11.0(@emotion/react@11.9.0)(@types/react@17.0.37)(react@17.0.2) - '@mui/icons-material': 5.14.8(@mui/material@5.10.7)(@types/react@17.0.37)(react@17.0.2) - '@mui/lab': 5.0.0-alpha.60(@emotion/react@11.9.0)(@emotion/styled@11.11.0)(@mui/material@5.10.7)(@types/react@17.0.37)(date-fns@2.28.0)(moment@2.29.4)(react-dom@17.0.2)(react@17.0.2) - '@mui/material': 5.10.7(@emotion/react@11.9.0)(@emotion/styled@11.11.0)(@types/react@17.0.37)(react-dom@17.0.2)(react@17.0.2) - '@mui/styles': 5.14.7(@types/react@17.0.37)(react@17.0.2) + '@mui/icons-material': 5.14.8(@mui/material@5.14.9)(@types/react@17.0.37)(react@17.0.2) + '@mui/lab': 5.0.0-alpha.60(@emotion/react@11.9.0)(@emotion/styled@11.11.0)(@mui/material@5.14.9)(@types/react@17.0.37)(date-fns@2.30.0)(moment@2.29.4)(react-dom@17.0.2)(react@17.0.2) + '@mui/material': 5.14.9(@emotion/react@11.9.0)(@emotion/styled@11.11.0)(@types/react@17.0.37)(react-dom@17.0.2)(react@17.0.2) + '@mui/styles': 5.14.7(@types/react@17.0.37)(react-dom@17.0.2)(react@17.0.2) clsx: 1.2.1 moment: 2.29.4 prop-types: 15.8.1 @@ -947,6 +947,34 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true + /@floating-ui/core@1.4.1: + resolution: {integrity: sha512-jk3WqquEJRlcyu7997NtR5PibI+y5bi+LS3hPmguVClypenMsCY3CBa3LAQnozRCtCrYWSEtAdiskpamuJRFOQ==} + dependencies: + '@floating-ui/utils': 0.1.2 + dev: false + + /@floating-ui/dom@1.5.2: + resolution: {integrity: sha512-6ArmenS6qJEWmwzczWyhvrXRdI/rI78poBcW0h/456+onlabit+2G+QxHx5xTOX60NBJQXjsCLFbW2CmsXpUog==} + dependencies: + '@floating-ui/core': 1.4.1 + '@floating-ui/utils': 0.1.2 + dev: false + + /@floating-ui/react-dom@2.0.2(react-dom@17.0.2)(react@17.0.2): + resolution: {integrity: sha512-5qhlDvjaLmAst/rKb3VdlCinwTF4EYMiVxuuc/HVUjs46W0zgtbMmAZ1UTsDrRTxRmUEzl92mOtWbeeXL26lSQ==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + '@floating-ui/dom': 1.5.2 + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + dev: false + + /@floating-ui/utils@0.1.2: + resolution: {integrity: sha512-ou3elfqG/hZsbmF4bxeJhPHIf3G2pm0ujc39hYEZrfVqt7Vk/Zji6CXc3W0pmYM8BW1g40U+akTl9DKZhFhInQ==} + dev: false + /@humanwhocodes/config-array@0.11.11: resolution: {integrity: sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==} engines: {node: '>=10.10.0'} @@ -1125,8 +1153,8 @@ packages: react-is: 17.0.2 dev: false - /@mui/base@5.0.0-alpha.99(@types/react@17.0.37)(react-dom@17.0.2)(react@17.0.2): - resolution: {integrity: sha512-D04H6O1c0Jv561yI0SVbpa8MpqpW3G43CwJxV2o6ALfI0DMJ45w07dGafmDchb6aCWTRTdggd3rjgmuzyNwPiQ==} + /@mui/base@5.0.0-beta.15(@types/react@17.0.37)(react-dom@17.0.2)(react@17.0.2): + resolution: {integrity: sha512-Xtom3YSdi0iwYPtyVRFUEGoRwi6IHWixPwifDKaK+4PkEPtUWMU5YOIJfTsmC59ri+dFvA3oBNSiTPUGGrklZw==} engines: {node: '>=12.0.0'} peerDependencies: '@types/react': ^17.0.0 || ^18.0.0 @@ -1137,23 +1165,22 @@ packages: optional: true dependencies: '@babel/runtime': 7.22.15 - '@emotion/is-prop-valid': 1.2.1 + '@floating-ui/react-dom': 2.0.2(react-dom@17.0.2)(react@17.0.2) '@mui/types': 7.2.4(@types/react@17.0.37) - '@mui/utils': 5.14.7(react@17.0.2) + '@mui/utils': 5.14.9(@types/react@17.0.37)(react-dom@17.0.2)(react@17.0.2) '@popperjs/core': 2.11.8 '@types/react': 17.0.37 - clsx: 1.2.1 + clsx: 2.0.0 prop-types: 15.8.1 react: 17.0.2 react-dom: 17.0.2(react@17.0.2) - react-is: 18.2.0 dev: false - /@mui/core-downloads-tracker@5.14.7: - resolution: {integrity: sha512-sCWTUNElBPgB30iLvWe3PU7SIlTKZNf6/E/sko85iHVeHCM6WPkDw+y89CrZYjhFNmPqt2fIQM/pZu+rP2lFLA==} + /@mui/core-downloads-tracker@5.14.9: + resolution: {integrity: sha512-JAU/R5hM3l2zP1Q4KnioDRhq5V3vZ4mmjEZ+TwARDb2xFhg3p59McacQuzkSu0sUHJnH9aJos36+hU5sPQBcFQ==} dev: false - /@mui/icons-material@5.14.8(@mui/material@5.10.7)(@types/react@17.0.37)(react@17.0.2): + /@mui/icons-material@5.14.8(@mui/material@5.14.9)(@types/react@17.0.37)(react@17.0.2): resolution: {integrity: sha512-YXcReLydTuNWb1/PxduAH5LgnHNH6spSQBaA0JOz9HD4J+vwst0IanAQgsXy9KKCJSjCsHywE3DB8X+w/b4eeQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -1165,12 +1192,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.22.15 - '@mui/material': 5.10.7(@emotion/react@11.9.0)(@emotion/styled@11.11.0)(@types/react@17.0.37)(react-dom@17.0.2)(react@17.0.2) + '@mui/material': 5.14.9(@emotion/react@11.9.0)(@emotion/styled@11.11.0)(@types/react@17.0.37)(react-dom@17.0.2)(react@17.0.2) '@types/react': 17.0.37 react: 17.0.2 dev: false - /@mui/lab@5.0.0-alpha.60(@emotion/react@11.9.0)(@emotion/styled@11.11.0)(@mui/material@5.10.7)(@types/react@17.0.37)(date-fns@2.28.0)(moment@2.29.4)(react-dom@17.0.2)(react@17.0.2): + /@mui/lab@5.0.0-alpha.60(@emotion/react@11.9.0)(@emotion/styled@11.11.0)(@mui/material@5.14.9)(@types/react@17.0.37)(date-fns@2.30.0)(moment@2.29.4)(react-dom@17.0.2)(react@17.0.2): resolution: {integrity: sha512-d41Ks+rY2OJSGffVLj3nZiJwAMmAzoOoKv5FZIM3LFSiBOudihtwDbed3VcWYGZd/hdWTAfM0HE8AB0hoE7GAg==} engines: {node: '>=12.0.0'} peerDependencies: @@ -1195,17 +1222,17 @@ packages: optional: true dependencies: '@babel/runtime': 7.22.15 - '@date-io/date-fns': 2.17.0(date-fns@2.28.0) + '@date-io/date-fns': 2.17.0(date-fns@2.30.0) '@date-io/dayjs': 2.17.0 '@date-io/luxon': 2.17.0 '@date-io/moment': 2.17.0(moment@2.29.4) '@mui/base': 5.0.0-alpha.60(@types/react@17.0.37)(react-dom@17.0.2)(react@17.0.2) - '@mui/material': 5.10.7(@emotion/react@11.9.0)(@emotion/styled@11.11.0)(@types/react@17.0.37)(react-dom@17.0.2)(react@17.0.2) + '@mui/material': 5.14.9(@emotion/react@11.9.0)(@emotion/styled@11.11.0)(@types/react@17.0.37)(react-dom@17.0.2)(react@17.0.2) '@mui/system': 5.14.7(@emotion/react@11.9.0)(@emotion/styled@11.11.0)(@types/react@17.0.37)(react@17.0.2) '@mui/utils': 5.14.7(react@17.0.2) '@types/react': 17.0.37 clsx: 1.2.1 - date-fns: 2.28.0 + date-fns: 2.30.0 moment: 2.29.4 prop-types: 15.8.1 react: 17.0.2 @@ -1218,8 +1245,8 @@ packages: - '@emotion/styled' dev: false - /@mui/material@5.10.7(@emotion/react@11.9.0)(@emotion/styled@11.11.0)(@types/react@17.0.37)(react-dom@17.0.2)(react@17.0.2): - resolution: {integrity: sha512-o1jcQGii+q7ORrXhBiMmGzFDaboc1qTgOOC3zDW+NR9ryVzWzL7qEeqoORbgDB5zk9OBsXCjB91fUH/ls5xMwg==} + /@mui/material@5.14.9(@emotion/react@11.9.0)(@emotion/styled@11.11.0)(@types/react@17.0.37)(react-dom@17.0.2)(react@17.0.2): + resolution: {integrity: sha512-pbBy5kc5iUGXPxgbb+t+yEPvLK5nE3bPUb8WbAafJ8iZ40ZGui0xC4xiiIyzbVexzsLmyN7MaSo4LkxLmPKqUQ==} engines: {node: '>=12.0.0'} peerDependencies: '@emotion/react': ^11.5.0 @@ -1238,14 +1265,14 @@ packages: '@babel/runtime': 7.22.15 '@emotion/react': 11.9.0(@babel/core@7.22.15)(@types/react@17.0.37)(react@17.0.2) '@emotion/styled': 11.11.0(@emotion/react@11.9.0)(@types/react@17.0.37)(react@17.0.2) - '@mui/base': 5.0.0-alpha.99(@types/react@17.0.37)(react-dom@17.0.2)(react@17.0.2) - '@mui/core-downloads-tracker': 5.14.7 - '@mui/system': 5.14.7(@emotion/react@11.9.0)(@emotion/styled@11.11.0)(@types/react@17.0.37)(react@17.0.2) + '@mui/base': 5.0.0-beta.15(@types/react@17.0.37)(react-dom@17.0.2)(react@17.0.2) + '@mui/core-downloads-tracker': 5.14.9 + '@mui/system': 5.14.9(@emotion/react@11.9.0)(@emotion/styled@11.11.0)(@types/react@17.0.37)(react-dom@17.0.2)(react@17.0.2) '@mui/types': 7.2.4(@types/react@17.0.37) - '@mui/utils': 5.14.7(react@17.0.2) + '@mui/utils': 5.14.9(@types/react@17.0.37)(react-dom@17.0.2)(react@17.0.2) '@types/react': 17.0.37 '@types/react-transition-group': 4.4.6 - clsx: 1.2.1 + clsx: 2.0.0 csstype: 3.1.2 prop-types: 15.8.1 react: 17.0.2 @@ -1271,6 +1298,25 @@ packages: react: 17.0.2 dev: false + /@mui/private-theming@5.14.9(@types/react@17.0.37)(react-dom@17.0.2)(react@17.0.2): + resolution: {integrity: sha512-0PzoUFqFXTXiNchhR7K4b7kZunasPOjx6Qf7AagCmfZDNASHedA0x6evHVhnST918x/AHY9xykYNKfB0Z4xMBg==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.15 + '@mui/utils': 5.14.9(@types/react@17.0.37)(react-dom@17.0.2)(react@17.0.2) + '@types/react': 17.0.37 + prop-types: 15.8.1 + react: 17.0.2 + transitivePeerDependencies: + - react-dom + dev: false + /@mui/styled-engine@5.14.7(@emotion/react@11.9.0)(@emotion/styled@11.11.0)(react@17.0.2): resolution: {integrity: sha512-hKBETEDsIAkL8/mBwPiQj/vw28OeIhMXC3Tvj4J2bb9snxAKpiZioR1PwqP+6P41twsC/GKBd0Vr9oaWYaHuMg==} engines: {node: '>=12.0.0'} @@ -1293,7 +1339,29 @@ packages: react: 17.0.2 dev: false - /@mui/styles@5.14.7(@types/react@17.0.37)(react@17.0.2): + /@mui/styled-engine@5.14.9(@emotion/react@11.9.0)(@emotion/styled@11.11.0)(react@17.0.2): + resolution: {integrity: sha512-LEQxLrW9oWvea33pge08+oyNeTz704jb6Nhe26xEJKojXWd34Rr327Zzx3dmo70AcS4h0b99vQjEpUzm6ASqUw==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@emotion/react': ^11.4.1 + '@emotion/styled': ^11.3.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + dependencies: + '@babel/runtime': 7.22.15 + '@emotion/cache': 11.11.0 + '@emotion/react': 11.9.0(@babel/core@7.22.15)(@types/react@17.0.37)(react@17.0.2) + '@emotion/styled': 11.11.0(@emotion/react@11.9.0)(@types/react@17.0.37)(react@17.0.2) + csstype: 3.1.2 + prop-types: 15.8.1 + react: 17.0.2 + dev: false + + /@mui/styles@5.14.7(@types/react@17.0.37)(react-dom@17.0.2)(react@17.0.2): resolution: {integrity: sha512-5qA81gIRBUd3ur2FtGO10UmArpqaGWL+eUGFVSf68SjhahhHr86/JgqsXqUPyW/LPnyW92SZxhQ6El6Co8i7AQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -1305,9 +1373,9 @@ packages: dependencies: '@babel/runtime': 7.22.15 '@emotion/hash': 0.9.1 - '@mui/private-theming': 5.14.7(@types/react@17.0.37)(react@17.0.2) + '@mui/private-theming': 5.14.9(@types/react@17.0.37)(react-dom@17.0.2)(react@17.0.2) '@mui/types': 7.2.4(@types/react@17.0.37) - '@mui/utils': 5.14.7(react@17.0.2) + '@mui/utils': 5.14.9(@types/react@17.0.37)(react-dom@17.0.2)(react@17.0.2) '@types/react': 17.0.37 clsx: 2.0.0 csstype: 3.1.2 @@ -1322,6 +1390,8 @@ packages: jss-plugin-vendor-prefixer: 10.10.0 prop-types: 15.8.1 react: 17.0.2 + transitivePeerDependencies: + - react-dom dev: false /@mui/system@5.14.7(@emotion/react@11.9.0)(@emotion/styled@11.11.0)(@types/react@17.0.37)(react@17.0.2): @@ -1354,6 +1424,38 @@ packages: react: 17.0.2 dev: false + /@mui/system@5.14.9(@emotion/react@11.9.0)(@emotion/styled@11.11.0)(@types/react@17.0.37)(react-dom@17.0.2)(react@17.0.2): + resolution: {integrity: sha512-Z00Wj590QXk5+SIxmxayBo7SWrao+y433LKGChneJxO4QcT/caSCeEWtyeoLs1Q8ys0zOzl2kkKee6n8TaKzhQ==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@emotion/react': ^11.5.0 + '@emotion/styled': ^11.3.0 + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.15 + '@emotion/react': 11.9.0(@babel/core@7.22.15)(@types/react@17.0.37)(react@17.0.2) + '@emotion/styled': 11.11.0(@emotion/react@11.9.0)(@types/react@17.0.37)(react@17.0.2) + '@mui/private-theming': 5.14.9(@types/react@17.0.37)(react-dom@17.0.2)(react@17.0.2) + '@mui/styled-engine': 5.14.9(@emotion/react@11.9.0)(@emotion/styled@11.11.0)(react@17.0.2) + '@mui/types': 7.2.4(@types/react@17.0.37) + '@mui/utils': 5.14.9(@types/react@17.0.37)(react-dom@17.0.2)(react@17.0.2) + '@types/react': 17.0.37 + clsx: 2.0.0 + csstype: 3.1.2 + prop-types: 15.8.1 + react: 17.0.2 + transitivePeerDependencies: + - react-dom + dev: false + /@mui/types@7.2.4(@types/react@17.0.37): resolution: {integrity: sha512-LBcwa8rN84bKF+f5sDyku42w1NTxaPgPyYKODsh01U1fVstTClbUoSA96oyRBnSNyEiAVjKm6Gwx9vjR+xyqHA==} peerDependencies: @@ -1379,6 +1481,25 @@ packages: react-is: 18.2.0 dev: false + /@mui/utils@5.14.9(@types/react@17.0.37)(react-dom@17.0.2)(react@17.0.2): + resolution: {integrity: sha512-9ysB5e+RwS7ofn0n3nwAg1/3c81vBTmSvauD3EuK9LmqMzhmF//BFDaC44U4yITvB/0m1kWyDqg924Ll3VHCcg==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.15 + '@types/react': 17.0.37 + prop-types: 15.8.1 + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + react-is: 18.2.0 + dev: false + /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -2283,9 +2404,11 @@ packages: /csstype@3.1.2: resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} - /date-fns@2.28.0: - resolution: {integrity: sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==} + /date-fns@2.30.0: + resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} engines: {node: '>=0.11'} + dependencies: + '@babel/runtime': 7.22.15 dev: false /debug@4.3.4: @@ -2518,8 +2641,8 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - /eslint-config-prettier@8.5.0(eslint@8.48.0): - resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} + /eslint-config-prettier@9.0.0(eslint@8.48.0): + resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} hasBin: true peerDependencies: eslint: '>=7.0.0' @@ -2535,7 +2658,7 @@ packages: eslint: 8.48.0 dev: true - /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.5.0)(eslint@8.48.0)(prettier@2.6.0): + /eslint-plugin-prettier@4.2.1(eslint-config-prettier@9.0.0)(eslint@8.48.0)(prettier@2.6.0): resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -2547,7 +2670,7 @@ packages: optional: true dependencies: eslint: 8.48.0 - eslint-config-prettier: 8.5.0(eslint@8.48.0) + eslint-config-prettier: 9.0.0(eslint@8.48.0) prettier: 2.6.0 prettier-linter-helpers: 1.0.0 dev: true diff --git a/src/components/miscellaneous/TihldeLogo.tsx b/src/components/miscellaneous/TihldeLogo.tsx index 710a9794d..28cd87403 100644 --- a/src/components/miscellaneous/TihldeLogo.tsx +++ b/src/components/miscellaneous/TihldeLogo.tsx @@ -112,11 +112,6 @@ const TihldeLogo = ({ size, darkColor, lightColor, className, sx }: TihldeLogoPr {/* Show snow if between December 1st and January 6th */} {(isAfterDateOfYear(11, 1) || isBeforeDateOfYear(0, 6)) && } - {size === 'large' && ( - - 30 år! - - )} ); }; diff --git a/src/components/navigation/Topbar.tsx b/src/components/navigation/Topbar.tsx index 046e610af..826701ea4 100644 --- a/src/components/navigation/Topbar.tsx +++ b/src/components/navigation/Topbar.tsx @@ -7,11 +7,10 @@ import { Link } from 'react-router-dom'; import URLS from 'URLS'; //import TihldeLogo from 'components/miscellaneous/TihldeLogo'; +import TihldeLogo from 'components/miscellaneous/TihldeLogo'; import { NavigationItem, NavigationOptions } from 'components/navigation/Navigation'; import ProfileTopbarButton from 'components/navigation/ProfileTopbarButton'; -import { ReactComponent as TihldeJubLogoSvg } from 'assets/icons/logo_jub.svg'; - const useStyles = makeStyles()((theme) => ({ appBar: { boxSizing: 'border-box', @@ -195,7 +194,7 @@ const Topbar = ({ items, lightColor, darkColor, filledTopbar }: TopbarProps) => return (
- + {' '}
@@ -206,7 +205,7 @@ const Topbar = ({ items, lightColor, darkColor, filledTopbar }: TopbarProps) => - + {' '}
{items.map((item, i) => ( diff --git a/src/pages/EventAdministration/components/EventEditor.tsx b/src/pages/EventAdministration/components/EventEditor.tsx index 5119ad523..22a28e7ab 100644 --- a/src/pages/EventAdministration/components/EventEditor.tsx +++ b/src/pages/EventAdministration/components/EventEditor.tsx @@ -106,7 +106,7 @@ const EventEditor = ({ eventId, goToEvent }: EventEditorProps) => { only_allow_prioritized: newValues ? newValues.only_allow_prioritized : false, can_cause_strikes: newValues ? newValues.can_cause_strikes : true, enforces_previous_strikes: newValues ? newValues.enforces_previous_strikes : true, - is_paid_event: Boolean(newValues?.paid_information), + is_paid_event: newValues?.is_paid_event || false, price: newValues?.paid_information?.price, paytime: newValues?.paid_information?.paytime && parse(newValues?.paid_information.paytime, 'HH:mm:ss', new Date()), contact_person: newValues?.contact_person || null, @@ -213,10 +213,12 @@ const EventEditor = ({ eventId, goToEvent }: EventEditorProps) => { start_date: data.start_date.toJSON(), start_registration_at: data.start_registration_at.toJSON(), is_paid_event: data.is_paid_event, - paid_information: { - price: data.price, - paytime: data.paytime && format(new Date(data.paytime), 'HH:mm'), - }, + paid_information: data.is_paid_event + ? { + price: data.price, + paytime: data.paytime && format(new Date(data.paytime), 'HH:mm'), + } + : undefined, contact_person: data.contact_person?.user_id || null, } as EventMutate; if (eventId) { @@ -473,16 +475,16 @@ const EventEditor = ({ eventId, goToEvent }: EventEditorProps) => { } name='is_paid_event' - type='checkbox' + type='switch' /> - {watchPaidEvent && ( + @@ -496,7 +498,8 @@ const EventEditor = ({ eventId, goToEvent }: EventEditorProps) => { type='time' /> - )} + + diff --git a/src/pages/EventDetails/components/CountdownTimer.tsx b/src/pages/EventDetails/components/CountdownTimer.tsx index 75b57c077..1a4e23ea2 100644 --- a/src/pages/EventDetails/components/CountdownTimer.tsx +++ b/src/pages/EventDetails/components/CountdownTimer.tsx @@ -1,16 +1,10 @@ import styled from '@emotion/styled'; - import { Box, Typography } from '@mui/material'; -import { differenceInMilliseconds, formatDistance, formatDistanceStrict } from 'date-fns'; +import { differenceInMilliseconds, formatDistanceStrict } from 'date-fns'; import { nb } from 'date-fns/locale'; import { useEffect, useState } from 'react'; -import { useQueryClient } from 'react-query'; import { Link } from 'react-router-dom'; -import { Event, User } from 'types'; - -import { EVENT_QUERY_KEYS } from 'hooks/Event'; - import Paper from 'components/layout/Paper'; import VIPPS from 'assets/img/vipps.svg'; @@ -44,15 +38,12 @@ const convertTime = (milliseconds?: number) => { }; type Order = { - user_id: User['user_id']; - event_id: Event['id']; expire_date: Date; payment_link?: string; }; -const CountdownTimer = ({ user_id, event_id, payment_link, expire_date }: Order) => { +const CountdownTimer = ({ payment_link, expire_date }: Order) => { const [timeLeft, setTimeLeft] = useState(convertTime(getTimeDifference(expire_date))); - const queryClient = useQueryClient(); useEffect(() => { const interval = setInterval(() => { diff --git a/src/pages/EventDetails/components/EventRenderer.tsx b/src/pages/EventDetails/components/EventRenderer.tsx index d9d1426f5..36cd9fdcc 100644 --- a/src/pages/EventDetails/components/EventRenderer.tsx +++ b/src/pages/EventDetails/components/EventRenderer.tsx @@ -217,9 +217,8 @@ const EventRenderer = ({ data, preview = false }: EventRendererProps) => { <> @@ -436,12 +435,7 @@ const EventRenderer = ({ data, preview = false }: EventRendererProps) => { {lgDown && } {registration && data.paid_information && !registration.has_paid_order && ( - + )} theme.palette.text.primary, fontSize: '2.4rem', wordWrap: 'break-word' }} variant='h1'> diff --git a/src/pages/Landing/components/Wave.tsx b/src/pages/Landing/components/Wave.tsx index bb3111c77..98b12580e 100644 --- a/src/pages/Landing/components/Wave.tsx +++ b/src/pages/Landing/components/Wave.tsx @@ -13,7 +13,8 @@ import { useAnalytics } from 'hooks/Utils'; // import TihldeLogo from 'components/miscellaneous/TihldeLogo'; -import { ReactComponent as TihldeJubLogoSvg } from 'assets/icons/logo_jub.svg'; +import TihldeLogo from 'components/miscellaneous/TihldeLogo'; + import { ReactComponent as WaveBottom } from 'assets/img/waves/wave-bottom.svg'; import { ReactComponent as WaveMid } from 'assets/img/waves/wave-mid.svg'; import { ReactComponent as WaveTop } from 'assets/img/waves/wave-top.svg'; @@ -152,9 +153,7 @@ const Wave = () => {
- + Linjeforeningen for Dataingeniør, Digital infrastruktur og cybersikkerhet, Digital forretningsutvikling, Digital samhandling og Informasjonsbehandling ved NTNU diff --git a/vite.config.ts b/vite.config.ts index 40f4d620c..54c935173 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -24,6 +24,9 @@ export default defineConfig(({ mode }) => { }; return { + server: { + port: 3000, + }, esbuild: { treeShaking: true, jsxInject: mode === 'production' ? `import React from 'react'` : undefined, From 4fc06d992d62e45eafc7f0cedd25658169ce835c Mon Sep 17 00:00:00 2001 From: Martin Clementz Date: Mon, 25 Sep 2023 19:34:43 +0200 Subject: [PATCH 2/3] =?UTF-8?q?25.=20sep=20update=20=E2=9C=A8=20(#896)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): bump react-cool-dimensions from 2.0.7 to 3.0.1 (#874) Bumps [react-cool-dimensions](https://github.com/wellyshen/react-cool-dimensions) from 2.0.7 to 3.0.1. - [Release notes](https://github.com/wellyshen/react-cool-dimensions/releases) - [Changelog](https://github.com/wellyshen/react-cool-dimensions/blob/master/CHANGELOG.md) - [Commits](https://github.com/wellyshen/react-cool-dimensions/compare/v2.0.7...v3.0.1) --- updated-dependencies: - dependency-name: react-cool-dimensions dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump @vitejs/plugin-react from 1.3.1 to 4.0.4 (#885) Bumps [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) from 1.3.1 to 4.0.4. - [Release notes](https://github.com/vitejs/vite-plugin-react/releases) - [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite-plugin-react/commits/v4.0.4/packages/plugin-react) --- updated-dependencies: - dependency-name: "@vitejs/plugin-react" dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump @types/node from 20.5.9 to 20.6.3 (#889) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.5.9 to 20.6.3. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump vite-tsconfig-paths from 3.4.1 to 4.2.1 (#887) Bumps [vite-tsconfig-paths](https://github.com/aleclarson/vite-tsconfig-paths) from 3.4.1 to 4.2.1. - [Release notes](https://github.com/aleclarson/vite-tsconfig-paths/releases) - [Commits](https://github.com/aleclarson/vite-tsconfig-paths/compare/v3.4.1...v4.2.1) --- updated-dependencies: - dependency-name: vite-tsconfig-paths dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Adjustment(career) cards (#888) * Updated AspectRatioImg.tsx Redundant useEffect call CSS-support for aspect-ratio now common in all major browsers * Added more spacing between cards for consistency with the layout Renamed variable * fixes #660 Moved the image above the text for nice card UI and more space for text * Cleaned up comments and renamed variables * Update src/components/miscellaneous/JobPostListItem.tsx Co-authored-by: Olaf Rosendahl * Linting Signed-off-by: Anders * Updated matching skeleton UI Signed-off-by: Anders * More linting Signed-off-by: Anders * Added useEffect back Signed-off-by: Anders * Updated CHANGELOG.md Signed-off-by: Anders --------- Signed-off-by: Anders Co-authored-by: Olaf Rosendahl * changed display of contact person to full name instead of id (#890) * changed display of contact person to full name instead of id * Update CHANGELOG.md --------- Signed-off-by: dependabot[bot] Signed-off-by: Anders Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Anders <69890033+lille-morille@users.noreply.github.com> Co-authored-by: Olaf Rosendahl Co-authored-by: Mads Nylund <73914541+MadsNyl@users.noreply.github.com> --- CHANGELOG.md | 6 + package.json | 8 +- pnpm-lock.yaml | 241 ++++-------------- .../miscellaneous/AspectRatioImg.tsx | 46 +--- .../miscellaneous/JobPostListItem.tsx | 42 +-- .../miscellaneous/MarkdownRenderer.tsx | 2 +- .../components/EventEditor.tsx | 6 +- .../EventDetails/components/EventRenderer.tsx | 10 +- src/pages/JobPosts/index.tsx | 6 +- 9 files changed, 103 insertions(+), 264 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 70c248f71..26d9a6247 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,12 @@ --- ## Neste versjon + +## versjon 2023.24.09 + +- 🎨 **Fult navn**. Kontaktperson på arrangementer vil nå bli vist med fult navn. +- 👷 **Karriere**. Karrieresiden er nå mer oversiktlig og brukervennlig. + ## Versjon 2023.09.11 - ✨ **Tracking**. Bruker Vecel events til å tracke brukerens aktivitet på nettsiden. diff --git a/package.json b/package.json index c7cb18392..a2986811f 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "qr-scanner": "^1.4.1", "qrcode.react": "^3.1.0", "react": "^17.0.2", - "react-cool-dimensions": "^2.0.7", + "react-cool-dimensions": "^3.0.1", "react-dnd": "^16.0.1", "react-dnd-html5-backend": "^16.0.1", "react-dom": "^17.0.2", @@ -56,7 +56,7 @@ }, "devDependencies": { "@types/canvas-confetti": "^1.6.0", - "@types/node": "^20.5.9", + "@types/node": "^20.6.3", "@types/react": "^17.0.37", "@types/react-dom": "^17.0.11", "@types/react-helmet": "^6.1.2", @@ -64,7 +64,7 @@ "@types/react-qr-reader": "^2.1.4", "@typescript-eslint/eslint-plugin": "^5.22.0", "@typescript-eslint/parser": "^5.38.1", - "@vitejs/plugin-react": "^1.3.1", + "@vitejs/plugin-react": "^4.0.4", "eslint": "^8.48.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-import-helpers": "^1.3.1", @@ -78,6 +78,6 @@ "vite-plugin-checker": "^0.6.1", "vite-plugin-compression": "^0.5.1", "vite-plugin-svgr": "^3.2.0", - "vite-tsconfig-paths": "^3.4.1" + "vite-tsconfig-paths": "^4.2.1" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 522194840..41ce04062 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -69,11 +69,11 @@ dependencies: specifier: ^17.0.2 version: 17.0.2 react-cool-dimensions: - specifier: ^2.0.7 - version: 2.0.7(react@17.0.2) + specifier: ^3.0.1 + version: 3.0.1(react@17.0.2) react-dnd: specifier: ^16.0.1 - version: 16.0.1(@types/node@20.5.9)(@types/react@17.0.37)(react@17.0.2) + version: 16.0.1(@types/node@20.6.3)(@types/react@17.0.37)(react@17.0.2) react-dnd-html5-backend: specifier: ^16.0.1 version: 16.0.1 @@ -122,8 +122,8 @@ devDependencies: specifier: ^1.6.0 version: 1.6.0 '@types/node': - specifier: ^20.5.9 - version: 20.5.9 + specifier: ^20.6.3 + version: 20.6.3 '@types/react': specifier: ^17.0.37 version: 17.0.37 @@ -146,8 +146,8 @@ devDependencies: specifier: ^5.38.1 version: 5.38.1(eslint@8.48.0)(typescript@4.6.2) '@vitejs/plugin-react': - specifier: ^1.3.1 - version: 1.3.1 + specifier: ^4.0.4 + version: 4.0.4(vite@4.4.9) eslint: specifier: ^8.48.0 version: 8.48.0 @@ -177,7 +177,7 @@ devDependencies: version: 4.6.2 vite: specifier: ^4.4.9 - version: 4.4.9(@types/node@20.5.9) + version: 4.4.9(@types/node@20.6.3) vite-plugin-checker: specifier: ^0.6.1 version: 0.6.1(eslint@8.48.0)(typescript@4.6.2)(vite@4.4.9) @@ -188,8 +188,8 @@ devDependencies: specifier: ^3.2.0 version: 3.2.0(typescript@4.6.2)(vite@4.4.9) vite-tsconfig-paths: - specifier: ^3.4.1 - version: 3.4.1(vite@4.4.9) + specifier: ^4.2.1 + version: 4.2.1(typescript@4.6.2)(vite@4.4.9) packages: @@ -247,13 +247,6 @@ packages: '@jridgewell/trace-mapping': 0.3.19 jsesc: 2.5.2 - /@babel/helper-annotate-as-pure@7.22.5: - resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.15 - dev: true - /@babel/helper-compilation-targets@7.22.15: resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} engines: {node: '>=6.9.0'} @@ -354,26 +347,6 @@ packages: dependencies: '@babel/types': 7.22.15 - /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.22.15): - resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.22.15): - resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.15 - '@babel/plugin-transform-react-jsx': 7.22.15(@babel/core@7.22.15) - dev: true - /@babel/plugin-transform-react-jsx-self@7.22.5(@babel/core@7.22.15): resolution: {integrity: sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g==} engines: {node: '>=6.9.0'} @@ -394,20 +367,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-jsx@7.22.15(@babel/core@7.22.15): - resolution: {integrity: sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.15 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.15) - '@babel/types': 7.22.15 - dev: true - /@babel/runtime@7.22.15: resolution: {integrity: sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==} engines: {node: '>=6.9.0'} @@ -448,10 +407,6 @@ packages: '@babel/helper-validator-identifier': 7.22.15 to-fast-properties: 2.0.0 - /@cush/relative@1.0.0: - resolution: {integrity: sha512-RpfLEtTlyIxeNPGKcokS+p3BZII/Q3bYxryFRglh5H3A3T8q9fsLYm72VYAMEOOIBLEa8o93kFLiBDUWKrwXZA==} - dev: true - /@date-io/core@1.3.13: resolution: {integrity: sha512-AlEKV7TxjeK+jxWVKcCFrfYAk8spX9aCyiToFIiLPtfQbsjmRGLIhb5VZgptQcJdHtLXo7+m0DuurwFgUToQuA==} dev: false @@ -1542,14 +1497,6 @@ packages: engines: {node: '>=14.0.0'} dev: false - /@rollup/pluginutils@4.2.1: - resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} - engines: {node: '>= 8.0.0'} - dependencies: - estree-walker: 2.0.2 - picomatch: 2.3.1 - dev: true - /@rollup/pluginutils@5.0.4: resolution: {integrity: sha512-0KJnIoRI8A+a1dqOYLxH8vBf8bphDmty5QvIm2hqm7oFCFYKCAZWWd2hXgMibaPsNDhI0AtpYfQZJG47pt/k4g==} engines: {node: '>=14.0.0'} @@ -1718,10 +1665,6 @@ packages: resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} dev: true - /@types/json5@0.0.29: - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - dev: true - /@types/lodash@4.14.197: resolution: {integrity: sha512-BMVOiWs0uNxHVlHBgzTIqJYmj+PgCo4euloGF+5m4okL3rEYzM2EEv78mw8zWSMM57dM7kVIgJ2QDvwHSoCI5g==} dev: false @@ -1744,8 +1687,8 @@ packages: resolution: {integrity: sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==} dev: false - /@types/node@20.5.9: - resolution: {integrity: sha512-PcGNd//40kHAS3sTlzKB9C9XL4K0sTup8nbG5lC14kzEteTNuAFh9u5nA0o5TWnSG2r/JNPRXFVcHJIIeRlmqQ==} + /@types/node@20.6.3: + resolution: {integrity: sha512-HksnYH4Ljr4VQgEy2lTStbCKv/P590tmPe5HqOnv9Gprffgv5WXAY+Y5Gqniu0GGqeTCUdBnzC3QSrzPkBkAMA==} /@types/offscreencanvas@2019.7.1: resolution: {integrity: sha512-+HSrJgjBW77ALieQdMJvXhRZUIRN1597L+BKvsyeiIlHHERnqjcuOLyodK3auJ3Y3zRezNKtKAhuQWYJfEgFHQ==} @@ -1980,18 +1923,17 @@ packages: resolution: {integrity: sha512-BZFxVrv24VbNNl5xMxqUojQIegEeXMI6rX3rg1uVLYUEXsuKNBSAEQf4BWEcjQDp/8aYJOj6m8V4PUA3x/cxgg==} dev: false - /@vitejs/plugin-react@1.3.1: - resolution: {integrity: sha512-qQS8Y2fZCjo5YmDUplEXl3yn+aueiwxB7BaoQ4nWYJYR+Ai8NXPVLlkLobVMs5+DeyFyg9Lrz6zCzdX1opcvyw==} - engines: {node: '>=12.0.0'} + /@vitejs/plugin-react@4.0.4(vite@4.4.9): + resolution: {integrity: sha512-7wU921ABnNYkETiMaZy7XqpueMnpu5VxvVps13MjmCo+utBdD79sZzrApHawHtVX66cCJQQTXFcjH0y9dSUK8g==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.2.0 dependencies: '@babel/core': 7.22.15 - '@babel/plugin-transform-react-jsx': 7.22.15(@babel/core@7.22.15) - '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.22.15) '@babel/plugin-transform-react-jsx-self': 7.22.5(@babel/core@7.22.15) '@babel/plugin-transform-react-jsx-source': 7.22.5(@babel/core@7.22.15) - '@rollup/pluginutils': 4.2.1 - react-refresh: 0.12.0 - resolve: 1.22.4 + react-refresh: 0.14.0 + vite: 4.4.9(@types/node@20.6.3) transitivePeerDependencies: - supports-color dev: true @@ -2048,10 +1990,6 @@ packages: resolution: {integrity: sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==} dev: false - /any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - dev: true - /anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -2323,11 +2261,6 @@ packages: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} dev: false - /commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} - dev: true - /commander@8.3.0: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} @@ -3025,21 +2958,6 @@ packages: is-glob: 4.0.3 dev: true - /glob-regex@0.3.2: - resolution: {integrity: sha512-m5blUd3/OqDTWwzBBtWBPrGlAzatRywHameHeekAZyZrskYouOGdNB8T/q6JucucvJXtOuyHIn0/Yia7iDasDw==} - dev: true - - /glob@7.1.6: - resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: true - /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: @@ -3460,13 +3378,6 @@ packages: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true - /json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true - dependencies: - minimist: 1.2.8 - dev: true - /json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} @@ -3912,6 +3823,7 @@ packages: /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: false /mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} @@ -3932,14 +3844,6 @@ packages: /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - /mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - dependencies: - any-promise: 1.3.0 - object-assign: 4.1.1 - thenify-all: 1.6.0 - dev: true - /nano-time@1.0.0: resolution: {integrity: sha512-flnngywOoQ0lLQOTRNexn2gGSNuM9bKj9RZAWSzhQ+UJYaAFG9bac4DW9VHjUAzrOaIcajHybCTHe/bkvozQqA==} dependencies: @@ -4158,11 +4062,6 @@ packages: engines: {node: '>=8.6'} dev: true - /pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} - engines: {node: '>= 6'} - dev: true - /pixelmatch@4.0.2: resolution: {integrity: sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==} hasBin: true @@ -4252,8 +4151,8 @@ packages: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true - /react-cool-dimensions@2.0.7(react@17.0.2): - resolution: {integrity: sha512-z1VwkAAJ5d8QybDRuYIXTE41RxGr5GYsv1bQhbOBE8cMfoZQZpcF0odL64vdgrQVzat2jayedj1GoYi80FWcbA==} + /react-cool-dimensions@3.0.1(react@17.0.2): + resolution: {integrity: sha512-DUsDB5WUN1Qh6fJJlBtqFKCktrZCPRYcVn8NTeM6hP/5AhZNjDOa2sC2Dg0EM3WUObPDNV5nFLA34vHQfahUeg==} peerDependencies: react: '>= 16.8.0' dependencies: @@ -4266,7 +4165,7 @@ packages: dnd-core: 16.0.1 dev: false - /react-dnd@16.0.1(@types/node@20.5.9)(@types/react@17.0.37)(react@17.0.2): + /react-dnd@16.0.1(@types/node@20.6.3)(@types/react@17.0.37)(react@17.0.2): resolution: {integrity: sha512-QeoM/i73HHu2XF9aKksIUuamHPDvRglEwdHL4jsp784BgUuWcg6mzfxT0QDdQz8Wj0qyRKx2eMg8iZtWvU4E2Q==} peerDependencies: '@types/hoist-non-react-statics': '>= 3.3.1' @@ -4283,7 +4182,7 @@ packages: dependencies: '@react-dnd/invariant': 4.0.2 '@react-dnd/shallowequal': 4.0.2 - '@types/node': 20.5.9 + '@types/node': 20.6.3 '@types/react': 17.0.37 dnd-core: 16.0.1 fast-deep-equal: 3.1.3 @@ -4427,8 +4326,8 @@ packages: react-dom: 17.0.2(react@17.0.2) dev: false - /react-refresh@0.12.0: - resolution: {integrity: sha512-suLIhrU2IHKL5JEKR/fAwJv7bbeq4kJ+pJopf77jHwuR+HmJS/HbrPIGsTBUVfw7tXPOmYv7UJ7PCaN49e8x4A==} + /react-refresh@0.14.0: + resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} engines: {node: '>=0.10.0'} dev: true @@ -4508,16 +4407,6 @@ packages: picomatch: 2.3.1 dev: true - /recrawl-sync@2.2.3: - resolution: {integrity: sha512-vSaTR9t+cpxlskkdUFrsEpnf67kSmPk66yAGT1fZPrDudxQjoMzPgQhSMImQ0pAw5k0NPirefQfhopSjhdUtpQ==} - dependencies: - '@cush/relative': 1.0.0 - glob-regex: 0.3.2 - slash: 3.0.0 - sucrase: 3.34.0 - tslib: 1.14.1 - dev: true - /redux@4.2.1: resolution: {integrity: sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==} dependencies: @@ -4592,6 +4481,7 @@ packages: is-core-module: 2.13.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + dev: false /resolve@2.0.0-next.4: resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} @@ -4789,11 +4679,6 @@ packages: ansi-regex: 5.0.1 dev: true - /strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - dev: true - /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -4817,20 +4702,6 @@ packages: resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} dev: false - /sucrase@3.34.0: - resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} - engines: {node: '>=8'} - hasBin: true - dependencies: - '@jridgewell/gen-mapping': 0.3.3 - commander: 4.1.1 - glob: 7.1.6 - lines-and-columns: 1.2.4 - mz: 2.7.0 - pirates: 4.0.6 - ts-interface-checker: 0.1.13 - dev: true - /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -4856,19 +4727,6 @@ packages: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true - /thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} - dependencies: - thenify: 3.3.1 - dev: true - - /thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - dependencies: - any-promise: 1.3.0 - dev: true - /timm@1.7.1: resolution: {integrity: sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==} dev: false @@ -4921,17 +4779,17 @@ packages: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} dev: false - /ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - dev: true - - /tsconfig-paths@3.14.2: - resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} + /tsconfck@2.1.2(typescript@4.6.2): + resolution: {integrity: sha512-ghqN1b0puy3MhhviwO2kGF8SeMDNhEbnKxjK7h6+fvY9JAxqvXi8y5NAHSQv687OVboS2uZIByzGd45/YxrRHg==} + engines: {node: ^14.13.1 || ^16 || >=18} + hasBin: true + peerDependencies: + typescript: ^4.3.5 || ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@types/json5': 0.0.29 - json5: 1.0.2 - minimist: 1.2.8 - strip-bom: 3.0.0 + typescript: 4.6.2 dev: true /tslib@1.14.1: @@ -5224,7 +5082,7 @@ packages: strip-ansi: 6.0.1 tiny-invariant: 1.3.1 typescript: 4.6.2 - vite: 4.4.9(@types/node@20.5.9) + vite: 4.4.9(@types/node@20.6.3) vscode-languageclient: 7.0.0 vscode-languageserver: 7.0.0 vscode-languageserver-textdocument: 1.0.8 @@ -5239,7 +5097,7 @@ packages: chalk: 4.1.2 debug: 4.3.4 fs-extra: 10.1.0 - vite: 4.4.9(@types/node@20.5.9) + vite: 4.4.9(@types/node@20.6.3) transitivePeerDependencies: - supports-color dev: true @@ -5252,28 +5110,31 @@ packages: '@rollup/pluginutils': 5.0.4 '@svgr/core': 7.0.0(typescript@4.6.2) '@svgr/plugin-jsx': 7.0.0 - vite: 4.4.9(@types/node@20.5.9) + vite: 4.4.9(@types/node@20.6.3) transitivePeerDependencies: - rollup - supports-color - typescript dev: true - /vite-tsconfig-paths@3.4.1(vite@4.4.9): - resolution: {integrity: sha512-SgK3/pnTuJ3i+gMSAWLR6VCPSw26bnxawrmXGvCDjJgk8MAQgmbCrFrAzfwbwZBXSqSuvWEuX04Wt73qJKx8fQ==} + /vite-tsconfig-paths@4.2.1(typescript@4.6.2)(vite@4.4.9): + resolution: {integrity: sha512-GNUI6ZgPqT3oervkvzU+qtys83+75N/OuDaQl7HmOqFTb0pjZsuARrRipsyJhJ3enqV8beI1xhGbToR4o78nSQ==} peerDependencies: - vite: '>2.0.0-0' + vite: '*' + peerDependenciesMeta: + vite: + optional: true dependencies: debug: 4.3.4 globrex: 0.1.2 - recrawl-sync: 2.2.3 - tsconfig-paths: 3.14.2 - vite: 4.4.9(@types/node@20.5.9) + tsconfck: 2.1.2(typescript@4.6.2) + vite: 4.4.9(@types/node@20.6.3) transitivePeerDependencies: - supports-color + - typescript dev: true - /vite@4.4.9(@types/node@20.5.9): + /vite@4.4.9(@types/node@20.6.3): resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -5301,7 +5162,7 @@ packages: terser: optional: true dependencies: - '@types/node': 20.5.9 + '@types/node': 20.6.3 esbuild: 0.18.20 postcss: 8.4.29 rollup: 3.28.1 diff --git a/src/components/miscellaneous/AspectRatioImg.tsx b/src/components/miscellaneous/AspectRatioImg.tsx index 6d8bf9074..a27aa0966 100644 --- a/src/components/miscellaneous/AspectRatioImg.tsx +++ b/src/components/miscellaneous/AspectRatioImg.tsx @@ -1,7 +1,7 @@ import { BoxProps, Skeleton, styled } from '@mui/material'; import { useEffect, useState } from 'react'; -import TIHLDELOGO from 'assets/img/TihldeBackground.jpg'; +import TIHLDE_LOGO from 'assets/img/TihldeBackground.jpg'; export type AspectRatioImgProps = { alt: string; @@ -24,51 +24,15 @@ const Img = styled('img', { shouldForwardProp: (prop) => prop !== 'borderRadius' }, })); -// TODO: fjern når flere nettlesere støtter aspect-ratio i css - https://caniuse.com/mdn-css_properties_aspect-ratio -const AspectRatioPolyfill = styled('div', { shouldForwardProp: (prop) => prop !== 'ratio' })>(({ ratio }) => ({ - position: 'relative', - width: '100%', - '&::before': { - height: 0, - content: '""', - display: 'block', - paddingBottom: `calc(100% / ( ${ratio} ))`, - }, - '& > img': { - position: 'absolute', - top: 0, - left: 0, - width: '100%', - height: '100%', - objectFit: 'cover', - }, -})); - const AspectRatioImg = ({ alt, borderRadius, className, ratio = 21 / 9, src, sx }: AspectRatioImgProps) => { - const [imgUrl, setImgUrl] = useState(src || TIHLDELOGO); + const [imgUrl, setImgUrl] = useState(src || TIHLDE_LOGO); + useEffect(() => { - setImgUrl(src || TIHLDELOGO); + setImgUrl(src || TIHLDE_LOGO); }, [src]); - // TODO: fjern når flere nettlesere støtter aspect-ratio i css - https://caniuse.com/mdn-css_properties_aspect-ratio - if (!CSS.supports('aspect-ratio', String(ratio))) { - return ( - - {alt} setImgUrl(TIHLDELOGO)} - ratio={ratio} - src={imgUrl} - sx={sx} - /> - - ); - } return ( - {alt} setImgUrl(TIHLDELOGO)} ratio={ratio} src={imgUrl} sx={sx} /> + {alt} setImgUrl(TIHLDE_LOGO)} ratio={ratio} src={imgUrl} sx={sx} /> ); }; diff --git a/src/components/miscellaneous/JobPostListItem.tsx b/src/components/miscellaneous/JobPostListItem.tsx index f2cdfe02b..d900a433f 100644 --- a/src/components/miscellaneous/JobPostListItem.tsx +++ b/src/components/miscellaneous/JobPostListItem.tsx @@ -1,4 +1,4 @@ -import { Box, Divider, ListItemButton, Skeleton, Stack, Typography } from '@mui/material'; +import { Box, Divider, ListItemButton, Skeleton, Stack, Theme, Typography } from '@mui/material'; import { parseISO } from 'date-fns'; import { Link } from 'react-router-dom'; import URLS from 'URLS'; @@ -7,54 +7,58 @@ import { formatDate, getJobpostType, urlEncode } from 'utils'; import { JobPost } from 'types'; import Paper, { PaperProps } from 'components/layout/Paper'; -import AspectRatioImg, { AspectRatioLoading } from 'components/miscellaneous/AspectRatioImg'; +import AspectRatioImg from 'components/miscellaneous/AspectRatioImg'; export type JobPostListItemProps = { - jobpost: JobPost; + jobPost: JobPost; sx?: PaperProps['sx']; }; -const JobPostListItem = ({ jobpost, sx }: JobPostListItemProps) => ( +const getUpperBorderRadius = (theme: Theme) => `${Number(theme.shape.borderRadius) / 2}px ${Number(theme.shape.borderRadius) / 2}px 0 0`; + +const JobPostListItem = ({ jobPost, sx }: JobPostListItemProps) => ( `${theme.shape.borderRadius}px`, ...sx }} - to={`${URLS.jobposts}${jobpost.id}/${urlEncode(jobpost.title)}/`}> + to={`${URLS.jobposts}${jobPost.id}/${urlEncode(jobPost.title)}/`}> + - {jobpost.title} + {jobPost.title} - {`${jobpost.company} • ${jobpost.location}`} + {`${jobPost.company} • ${jobPost.location}`} - {/* TODO: fjern div rundt AspectRatioImg når flere nettlesere støtter aspect-ratio i css - https://caniuse.com/mdn-css_properties_aspect-ratio */} -
- `${Number(theme.shape.borderRadius) / 2}px` }} - /> -
Type
- {getJobpostType(jobpost.job_type)} + {getJobpostType(jobPost.job_type)}
Årstrinn
- {`${jobpost.class_start === jobpost.class_end ? `${jobpost.class_start}.` : `${jobpost.class_start}. - ${jobpost.class_end}.`}`} + {`${jobPost.class_start === jobPost.class_end ? `${jobPost.class_start}.` : `${jobPost.class_start}. - ${jobPost.class_end}.`}`}
Frist
- {jobpost.is_continuously_hiring ? 'Fortløpende' : formatDate(parseISO(jobpost.deadline), { time: false })} + {jobPost.is_continuously_hiring ? 'Fortløpende' : formatDate(parseISO(jobPost.deadline), { time: false })}
@@ -66,6 +70,7 @@ export default JobPostListItem; export const JobPostListItemLoading = ({ sx }: Pick) => ( `${theme.shape.borderRadius}px` }}> + @@ -75,7 +80,6 @@ export const JobPostListItemLoading = ({ sx }: Pick) - diff --git a/src/components/miscellaneous/MarkdownRenderer.tsx b/src/components/miscellaneous/MarkdownRenderer.tsx index 38bd8ef72..0df9b3612 100644 --- a/src/components/miscellaneous/MarkdownRenderer.tsx +++ b/src/components/miscellaneous/MarkdownRenderer.tsx @@ -72,7 +72,7 @@ export const EventCard = ({ id }: { id: Event['id'] }) => { }; export const JobPostCard = ({ id }: { id: JobPost['id'] }) => { const { data } = useJobPostById(id); - return data ? : ; + return data ? : ; }; export const NewsCard = ({ id }: { id: News['id'] }) => { const { data } = useNewsById(id); diff --git a/src/pages/EventAdministration/components/EventEditor.tsx b/src/pages/EventAdministration/components/EventEditor.tsx index 22a28e7ab..f64ec2266 100644 --- a/src/pages/EventAdministration/components/EventEditor.tsx +++ b/src/pages/EventAdministration/components/EventEditor.tsx @@ -215,9 +215,9 @@ const EventEditor = ({ eventId, goToEvent }: EventEditorProps) => { is_paid_event: data.is_paid_event, paid_information: data.is_paid_event ? { - price: data.price, - paytime: data.paytime && format(new Date(data.paytime), 'HH:mm'), - } + price: data.price, + paytime: data.paytime && format(new Date(data.paytime), 'HH:mm'), + } : undefined, contact_person: data.contact_person?.user_id || null, } as EventMutate; diff --git a/src/pages/EventDetails/components/EventRenderer.tsx b/src/pages/EventDetails/components/EventRenderer.tsx index 36cd9fdcc..dfffb0ba8 100644 --- a/src/pages/EventDetails/components/EventRenderer.tsx +++ b/src/pages/EventDetails/components/EventRenderer.tsx @@ -217,8 +217,9 @@ const EventRenderer = ({ data, preview = false }: EventRendererProps) => { <> @@ -360,7 +361,10 @@ const EventRenderer = ({ data, preview = false }: EventRendererProps) => { c.id === data.category)?.text || 'Laster...'} title='Hva:' /> {data.organizer && {data.organizer.name}} title='Arrangør:' />} {data.contact_person && ( - {data.contact_person?.user_id}} title='Kontaktperson' /> + {`${data.contact_person?.first_name} ${data.contact_person?.last_name}`}} + title='Kontaktperson' + /> )} {data.paid_information && } diff --git a/src/pages/JobPosts/index.tsx b/src/pages/JobPosts/index.tsx index afc2ff26b..4b03df410 100644 --- a/src/pages/JobPosts/index.tsx +++ b/src/pages/JobPosts/index.tsx @@ -35,7 +35,7 @@ const useStyles = makeStyles()((theme) => ({ list: { display: 'grid', gridTemplateColumns: '1fr 1fr', - gap: theme.spacing(1), + gap: theme.spacing(2), [theme.breakpoints.down('lg')]: { order: 1, }, @@ -137,8 +137,8 @@ const JobPosts = () => { fetchNextPage()}> {data.pages.map((page, i) => ( - {page.results.map((jobpost) => ( - + {page.results.map((jobPost) => ( + ))} ))} From a689f22982fc2f1ceed289b7a1f2ef2efe61483b Mon Sep 17 00:00:00 2001 From: Mads Nylund <73914541+MadsNyl@users.noreply.github.com> Date: Mon, 6 Nov 2023 10:00:29 +0100 Subject: [PATCH 3/3] November update (#918) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): bump @babel/traverse from 7.22.15 to 7.23.2 (#912) Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.22.15 to 7.23.2. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse) --- updated-dependencies: - dependency-name: "@babel/traverse" dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: cleanup calendar pup-up (#913) * chore: cleanup calendar pup-up * chore: update conditions * fix: formatting * chore: added emoji ➡️ * chore: remove emoji 😥 * chore: fix pre-commit file permissions * chore(deps-dev): bump postcss from 8.4.29 to 8.4.31 (#904) Bumps [postcss](https://github.com/postcss/postcss) from 8.4.29 to 8.4.31. - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/postcss/compare/8.4.29...8.4.31) --- updated-dependencies: - dependency-name: postcss dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Feat(event)/waitlist (#911) * Feat/event add users maunually (#917) * Added api endpoints locally and hooks * Added component and ui part * Small fix, only allow one person to be added * Updated Changelog * Update CHANGELOG.md * Trigger build --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Martin Clementz Co-authored-by: martcl Co-authored-by: Anders <69890033+lille-morille@users.noreply.github.com> --- .husky/pre-commit | 0 CHANGELOG.md | 6 ++ pnpm-lock.yaml | 70 ++++++++++++++----- src/api/api.tsx | 4 ++ src/hooks/Event.tsx | 9 +++ .../components/EventParticipants.tsx | 3 + .../components/EventUserRegistrator.tsx | 57 +++++++++++++++ .../EventDetails/components/EventRenderer.tsx | 8 +-- .../components/EventsCalendarPopover.tsx | 12 ++-- src/types/Event.tsx | 1 + 10 files changed, 143 insertions(+), 27 deletions(-) mode change 100644 => 100755 .husky/pre-commit create mode 100644 src/pages/EventAdministration/components/EventUserRegistrator.tsx diff --git a/.husky/pre-commit b/.husky/pre-commit old mode 100644 new mode 100755 diff --git a/CHANGELOG.md b/CHANGELOG.md index 64e8fcd81..162497c61 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,11 @@ ### 🎨 - Designendringer ## Neste versjon + +## versjon 2023.06.11 +- ✨ **Arrangement**. Du kan nå se hvilken plass du har på ventelisten. +- ✨ **Arrangement**. Admins kan nå manuelt legge til deltagere på et arrangement. +- ⚡ **Kalender**. Kalender pop-up viser viser infromasjonen bedre. - ✨ **Bannere**. Tidsbegrensede bannere kan nå opprettes. ## versjon 2023.24.09 @@ -24,6 +29,7 @@ - 🦟 **Arrangement**. Knapp for å opprette arrangemnt på gruppesiden vises kun for admins. ## versjon 2023.09.7 + - ✨ **Vipps betaling**. Vipps betaling på arrangementer, der bruker blir kastet ut hvis ikke betalt innen frist. ## versjon 2023 04.17 diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 41ce04062..9270f04bf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -228,7 +228,7 @@ packages: '@babel/helpers': 7.22.15 '@babel/parser': 7.22.15 '@babel/template': 7.22.15 - '@babel/traverse': 7.22.15 + '@babel/traverse': 7.23.2 '@babel/types': 7.22.15 convert-source-map: 1.9.0 debug: 4.3.4 @@ -247,6 +247,15 @@ packages: '@jridgewell/trace-mapping': 0.3.19 jsesc: 2.5.2 + /@babel/generator@7.23.0: + resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.19 + jsesc: 2.5.2 + /@babel/helper-compilation-targets@7.22.15: resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} engines: {node: '>=6.9.0'} @@ -257,22 +266,26 @@ packages: lru-cache: 5.1.1 semver: 6.3.1 + /@babel/helper-environment-visitor@7.22.20: + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + engines: {node: '>=6.9.0'} + /@babel/helper-environment-visitor@7.22.5: resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==} engines: {node: '>=6.9.0'} - /@babel/helper-function-name@7.22.5: - resolution: {integrity: sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==} + /@babel/helper-function-name@7.23.0: + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/types': 7.22.15 + '@babel/types': 7.23.0 /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.15 + '@babel/types': 7.23.0 /@babel/helper-module-imports@7.22.15: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} @@ -308,7 +321,7 @@ packages: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.15 + '@babel/types': 7.23.0 /@babel/helper-string-parser@7.22.5: resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} @@ -318,6 +331,10 @@ packages: resolution: {integrity: sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==} engines: {node: '>=6.9.0'} + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + /@babel/helper-validator-option@7.22.15: resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} engines: {node: '>=6.9.0'} @@ -327,7 +344,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/traverse': 7.22.15 + '@babel/traverse': 7.23.2 '@babel/types': 7.22.15 transitivePeerDependencies: - supports-color @@ -347,6 +364,13 @@ packages: dependencies: '@babel/types': 7.22.15 + /@babel/parser@7.23.0: + resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.0 + /@babel/plugin-transform-react-jsx-self@7.22.5(@babel/core@7.22.15): resolution: {integrity: sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g==} engines: {node: '>=6.9.0'} @@ -379,21 +403,21 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.22.13 - '@babel/parser': 7.22.15 - '@babel/types': 7.22.15 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 - /@babel/traverse@7.22.15: - resolution: {integrity: sha512-DdHPwvJY0sEeN4xJU5uRLmZjgMMDIvMPniLuYzUVXj/GGzysPl0/fwt44JBkyUIzGJPV8QgHMcQdQ34XFuKTYQ==} + /@babel/traverse@7.23.2: + resolution: {integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.22.13 - '@babel/generator': 7.22.15 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-function-name': 7.22.5 + '@babel/generator': 7.23.0 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.22.15 - '@babel/types': 7.22.15 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: @@ -407,6 +431,14 @@ packages: '@babel/helper-validator-identifier': 7.22.15 to-fast-properties: 2.0.0 + /@babel/types@7.23.0: + resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + /@date-io/core@1.3.13: resolution: {integrity: sha512-AlEKV7TxjeK+jxWVKcCFrfYAk8spX9aCyiToFIiLPtfQbsjmRGLIhb5VZgptQcJdHtLXo7+m0DuurwFgUToQuA==} dev: false @@ -4074,8 +4106,8 @@ packages: engines: {node: '>=4.0.0'} dev: false - /postcss@8.4.29: - resolution: {integrity: sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==} + /postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.6 @@ -5164,7 +5196,7 @@ packages: dependencies: '@types/node': 20.6.3 esbuild: 0.18.20 - postcss: 8.4.29 + postcss: 8.4.31 rollup: 3.28.1 optionalDependencies: fsevents: 2.3.3 diff --git a/src/api/api.tsx b/src/api/api.tsx index 18c1f16a4..fa82760e8 100644 --- a/src/api/api.tsx +++ b/src/api/api.tsx @@ -161,6 +161,10 @@ export default { deleteRegistration: (eventId: Event['id'], userId: User['user_id']) => IFetch({ method: 'DELETE', url: `${EVENTS_ENDPOINT}/${String(eventId)}/${EVENT_REGISTRATIONS_ENDPOINT}/${userId}/` }), + // Event registrations admin + createRegistrationAdmin: (eventId: Event['id'], userId: User['user_id']) => + IFetch({ method: 'POST', url: `${EVENTS_ENDPOINT}/${eventId}/${EVENT_REGISTRATIONS_ENDPOINT}/add/`, data: { user: userId } }), + // Forms getForm: (formId: string) => IFetch
({ method: 'GET', url: `${FORMS_ENDPOINT}/${formId}/` }), getFormTemplates: () => IFetch>({ method: 'GET', url: `${FORMS_ENDPOINT}/` }), diff --git a/src/hooks/Event.tsx b/src/hooks/Event.tsx index bb6d0481e..b38d7c849 100644 --- a/src/hooks/Event.tsx +++ b/src/hooks/Event.tsx @@ -173,6 +173,15 @@ export const useCreateEventRegistration = (eventId: Event['id']): UseMutationRes }); }; +export const useCreateEventRegistrationAdmin = (eventId: Event['id']): UseMutationResult => { + const queryClient = useQueryClient(); + return useMutation((userId: User['user_id']) => API.createRegistrationAdmin(eventId, userId), { + onSuccess: () => { + queryClient.invalidateQueries(EVENT_QUERY_KEYS.registrations.all(eventId)); + }, + }); +}; + export const useUpdateEventRegistration = ( eventId: Event['id'], ): UseMutationResult< diff --git a/src/pages/EventAdministration/components/EventParticipants.tsx b/src/pages/EventAdministration/components/EventParticipants.tsx index decaad40e..1adeba6c8 100644 --- a/src/pages/EventAdministration/components/EventParticipants.tsx +++ b/src/pages/EventAdministration/components/EventParticipants.tsx @@ -16,6 +16,8 @@ import Participant from 'pages/EventAdministration/components/Participant'; import Pagination from 'components/layout/Pagination'; import Paper from 'components/layout/Paper'; +import EventUserRegistrator from './EventUserRegistrator'; + type RegistrationsProps = { onWait?: boolean; eventId: Event['id']; @@ -147,6 +149,7 @@ const EventParticipants = ({ eventId }: EventParticipantsProps) => { + diff --git a/src/pages/EventAdministration/components/EventUserRegistrator.tsx b/src/pages/EventAdministration/components/EventUserRegistrator.tsx new file mode 100644 index 000000000..f143e95d0 --- /dev/null +++ b/src/pages/EventAdministration/components/EventUserRegistrator.tsx @@ -0,0 +1,57 @@ +import AddIcon from '@mui/icons-material/Add'; +import { Button, ButtonProps } from '@mui/material'; +import { useState } from 'react'; +import { useForm } from 'react-hook-form'; + +import { useCreateEventRegistrationAdmin } from 'hooks/Event'; +import { useSnackbar } from 'hooks/Snackbar'; + +import UserSearch from 'components/inputs/UserSearch'; +import Dialog from 'components/layout/Dialog'; + +import { UserBase } from '../../../types'; + +export type EventMessageSenderProps = ButtonProps & { + eventId: number; +}; + +type FormValues = { + user: UserBase; +}; + +const EventUserRegistrator = ({ eventId, ...props }: EventMessageSenderProps) => { + const [dialogOpen, setDialogOpen] = useState(false); + const showSnackbar = useSnackbar(); + const { formState, handleSubmit, reset, control } = useForm(); + const { mutateAsync } = useCreateEventRegistrationAdmin(eventId); + const submit = async (data: FormValues) => { + try { + await mutateAsync(data.user.user_id); + + showSnackbar('Deltager lagt til', 'success'); + reset(); + setDialogOpen(false); + } catch (e) { + showSnackbar(e.detail, 'error'); + } + }; + + return ( + <> + + setDialogOpen(false)} + onConfirm={handleSubmit(submit)} + open={dialogOpen} + titleText='Legg til deltager'> + + + + ); +}; + +export default EventUserRegistrator; diff --git a/src/pages/EventDetails/components/EventRenderer.tsx b/src/pages/EventDetails/components/EventRenderer.tsx index dfffb0ba8..ea0828492 100644 --- a/src/pages/EventDetails/components/EventRenderer.tsx +++ b/src/pages/EventDetails/components/EventRenderer.tsx @@ -156,16 +156,16 @@ const EventRenderer = ({ data, preview = false }: EventRendererProps) => { } }; - type RegistrationInfoProps = { registration: Registration }; + type RegistrationInfoProps = { registration: Registration; event: Event }; - const RegistrationInfo = ({ registration }: RegistrationInfoProps) => { + const RegistrationInfo = ({ registration, event }: RegistrationInfoProps) => { const unregisteringGivesStrike = isPast(signOffDeadlineDate) && !registration.is_on_wait && data.can_cause_strikes; return ( <> {registration.is_on_wait ? ( <> - Du står på ventelisten, vi gir deg beskjed hvis du får plass + Du står på plass {registration.wait_queue_number}/{event.waiting_list_count} på ventelisten, vi gir deg beskjed hvis du får plass {registration.survey_submission.answers.length > 0 && (
@@ -288,7 +288,7 @@ const EventRenderer = ({ data, preview = false }: EventRendererProps) => { ) : null; } if (registration) { - return ; + return ; } if (isPast(endRegistrationDate)) { return null; diff --git a/src/pages/Landing/components/EventsCalendarPopover.tsx b/src/pages/Landing/components/EventsCalendarPopover.tsx index 7bc4d4e02..78f53f254 100644 --- a/src/pages/Landing/components/EventsCalendarPopover.tsx +++ b/src/pages/Landing/components/EventsCalendarPopover.tsx @@ -24,13 +24,17 @@ const EventsCalendarPopover = ({ id }: EventsCalendarPopoverProps) => { {data && ( <> - Detaljer + {data.title} - Påmelding - - + {data.sign_up && ( + <> + 0 && '/' + data.limit}`} title='Påmeldte:' /> + {data.waiting_list_count > 0 && } + + )} + Til arrangement )} diff --git a/src/types/Event.tsx b/src/types/Event.tsx index 9d06cdaa7..896cc81f1 100644 --- a/src/types/Event.tsx +++ b/src/types/Event.tsx @@ -86,6 +86,7 @@ export type Registration = { user_info: UserList; order: Order; has_paid_order?: boolean; + wait_queue_number?: number; }; export type PublicRegistration = {