codeforlife 2.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +47 -0
- package/.github/workflows/contributing.yaml +8 -0
- package/.github/workflows/main.yml +36 -0
- package/.prettierignore +5 -0
- package/.prettierrc.json +4 -0
- package/.vscode/launch.json +22 -0
- package/.vscode/settings.json +30 -0
- package/CHANGELOG.md +1864 -0
- package/CONTRIBUTING.md +3 -0
- package/LICENSE.md +3 -0
- package/README.md +94 -0
- package/codecov.yml +11 -0
- package/package.json +139 -0
- package/src/api/createApi.ts +84 -0
- package/src/api/endpoints/authFactor.ts +31 -0
- package/src/api/endpoints/index.ts +9 -0
- package/src/api/endpoints/klass.ts +87 -0
- package/src/api/endpoints/school.ts +34 -0
- package/src/api/endpoints/session.ts +40 -0
- package/src/api/endpoints/user.ts +70 -0
- package/src/api/index.ts +4 -0
- package/src/api/models.ts +144 -0
- package/src/api/tagTypes.ts +12 -0
- package/src/api/urls.ts +13 -0
- package/src/components/App.css +38 -0
- package/src/components/App.tsx +150 -0
- package/src/components/ClickableTooltip.tsx +43 -0
- package/src/components/CopyIconButton.test.tsx +16 -0
- package/src/components/CopyIconButton.tsx +27 -0
- package/src/components/Countdown.tsx +42 -0
- package/src/components/ElevatedAppBar.tsx +41 -0
- package/src/components/Image.tsx +41 -0
- package/src/components/InputFileButton.tsx +27 -0
- package/src/components/ItemizedList.tsx +61 -0
- package/src/components/OrderedGrid.tsx +92 -0
- package/src/components/ScrollIntoViewLink.tsx +23 -0
- package/src/components/SyncError.tsx +14 -0
- package/src/components/TablePagination.tsx +132 -0
- package/src/components/YouTubeVideo.tsx +26 -0
- package/src/components/form/ApiAutocompleteField.tsx +180 -0
- package/src/components/form/AutocompleteField.tsx +124 -0
- package/src/components/form/CheckboxField.tsx +81 -0
- package/src/components/form/CountryField.tsx +68 -0
- package/src/components/form/DatePickerField.tsx +119 -0
- package/src/components/form/EmailField.tsx +38 -0
- package/src/components/form/FirstNameField.tsx +40 -0
- package/src/components/form/Form.tsx +82 -0
- package/src/components/form/OtpField.tsx +28 -0
- package/src/components/form/PasswordField.tsx +71 -0
- package/src/components/form/RepeatField.tsx +115 -0
- package/src/components/form/SubmitButton.tsx +47 -0
- package/src/components/form/TextField.tsx +103 -0
- package/src/components/form/UkCountyField.tsx +67 -0
- package/src/components/form/index.tsx +28 -0
- package/src/components/index.ts +26 -0
- package/src/components/page/Banner.tsx +84 -0
- package/src/components/page/Notification.tsx +71 -0
- package/src/components/page/Page.tsx +73 -0
- package/src/components/page/Section.tsx +21 -0
- package/src/components/page/TabBar.tsx +131 -0
- package/src/components/page/index.ts +10 -0
- package/src/components/router/Link.tsx +22 -0
- package/src/components/router/LinkButton.tsx +21 -0
- package/src/components/router/LinkIconButton.tsx +21 -0
- package/src/components/router/LinkListItem.tsx +21 -0
- package/src/components/router/LinkTab.tsx +21 -0
- package/src/components/router/Navigate.tsx +33 -0
- package/src/components/router/index.tsx +12 -0
- package/src/components/table/CellStack.tsx +19 -0
- package/src/components/table/Table.tsx +55 -0
- package/src/components/table/index.tsx +10 -0
- package/src/features/InactiveDialog.tsx +40 -0
- package/src/features/ScreenTimeDialog.tsx +33 -0
- package/src/features/index.ts +4 -0
- package/src/fonts/Inter-VariableFont_slnt,wght.ttf +0 -0
- package/src/fonts/SpaceGrotesk-VariableFont_wght.ttf +0 -0
- package/src/hooks/api.tsx +37 -0
- package/src/hooks/auth.tsx +87 -0
- package/src/hooks/general.ts +110 -0
- package/src/hooks/index.ts +4 -0
- package/src/hooks/router.tsx +168 -0
- package/src/index.ts +2 -0
- package/src/middlewares/index.ts +1 -0
- package/src/middlewares/session.ts +16 -0
- package/src/public/images/brain.svg +1 -0
- package/src/schemas/user.ts +4 -0
- package/src/scripts/freshDesk.js +473 -0
- package/src/scripts/index.ts +1 -0
- package/src/server.js +181 -0
- package/src/settings/custom.ts +22 -0
- package/src/settings/index.ts +5 -0
- package/src/settings/vite.ts +26 -0
- package/src/setupTests.ts +1 -0
- package/src/slices/createSlice.ts +8 -0
- package/src/slices/index.ts +2 -0
- package/src/slices/session.ts +32 -0
- package/src/theme/ThemedBox.tsx +265 -0
- package/src/theme/colors.ts +57 -0
- package/src/theme/components/MuiAccordion.tsx +13 -0
- package/src/theme/components/MuiAutocomplete.tsx +11 -0
- package/src/theme/components/MuiButton.ts +70 -0
- package/src/theme/components/MuiCardActions.tsx +12 -0
- package/src/theme/components/MuiCheckbox.ts +12 -0
- package/src/theme/components/MuiContainer.ts +19 -0
- package/src/theme/components/MuiDialog.tsx +16 -0
- package/src/theme/components/MuiFormControlLabel.ts +18 -0
- package/src/theme/components/MuiFormHelperText.ts +12 -0
- package/src/theme/components/MuiGrid2.ts +16 -0
- package/src/theme/components/MuiInputBase.ts +14 -0
- package/src/theme/components/MuiLink.ts +41 -0
- package/src/theme/components/MuiList.ts +12 -0
- package/src/theme/components/MuiListItemText.ts +18 -0
- package/src/theme/components/MuiMenu.ts +14 -0
- package/src/theme/components/MuiMenuItem.ts +15 -0
- package/src/theme/components/MuiSelect.ts +16 -0
- package/src/theme/components/MuiTab.ts +29 -0
- package/src/theme/components/MuiTable.ts +29 -0
- package/src/theme/components/MuiTableBody.ts +15 -0
- package/src/theme/components/MuiTableHead.ts +26 -0
- package/src/theme/components/MuiTabs.ts +26 -0
- package/src/theme/components/MuiTextField.ts +86 -0
- package/src/theme/components/MuiToolbar.ts +11 -0
- package/src/theme/components/MuiTypography.ts +12 -0
- package/src/theme/components/_components.ts +93 -0
- package/src/theme/components/index.ts +57 -0
- package/src/theme/index.ts +25 -0
- package/src/theme/palette.ts +98 -0
- package/src/theme/spacing.ts +8 -0
- package/src/theme/typography.ts +101 -0
- package/src/utils/api.test.ts +19 -0
- package/src/utils/api.tsx +327 -0
- package/src/utils/auth.ts +17 -0
- package/src/utils/form.ts +153 -0
- package/src/utils/general.test.ts +42 -0
- package/src/utils/general.ts +498 -0
- package/src/utils/router.test.ts +156 -0
- package/src/utils/router.ts +67 -0
- package/src/utils/schema.ts +80 -0
- package/src/utils/store.ts +31 -0
- package/src/utils/test.tsx +82 -0
- package/src/utils/theme.tsx +82 -0
- package/src/utils/window.ts +9 -0
- package/src/vite-env.d.ts +1 -0
- package/tsconfig.json +31 -0
- package/tsconfig.node.json +11 -0
- package/types/fixes.d.ts +18 -0
- package/vite.config.ts +21 -0
package/.eslintrc.json
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": [
|
|
3
|
+
"eslint:recommended",
|
|
4
|
+
"react-app",
|
|
5
|
+
"plugin:react/jsx-runtime",
|
|
6
|
+
"prettier"
|
|
7
|
+
],
|
|
8
|
+
"parser": "@typescript-eslint/parser",
|
|
9
|
+
"parserOptions": {
|
|
10
|
+
"project": true,
|
|
11
|
+
"tsconfigRootDir": "./"
|
|
12
|
+
},
|
|
13
|
+
"plugins": [
|
|
14
|
+
"@typescript-eslint"
|
|
15
|
+
],
|
|
16
|
+
"root": true,
|
|
17
|
+
"ignorePatterns": [
|
|
18
|
+
"dist",
|
|
19
|
+
"src/scripts",
|
|
20
|
+
"**/*.d.ts",
|
|
21
|
+
"vite.config.js"
|
|
22
|
+
],
|
|
23
|
+
"rules": {
|
|
24
|
+
"@typescript-eslint/consistent-type-imports": [
|
|
25
|
+
2,
|
|
26
|
+
{
|
|
27
|
+
"fixStyle": "inline-type-imports"
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
},
|
|
31
|
+
"overrides": [
|
|
32
|
+
{
|
|
33
|
+
"files": [
|
|
34
|
+
"*.{c,m,}{t,j}s",
|
|
35
|
+
"*.{t,j}sx"
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"files": [
|
|
40
|
+
"*{test,spec}.{t,j}s?(x)"
|
|
41
|
+
],
|
|
42
|
+
"env": {
|
|
43
|
+
"jest": true
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
name: Main
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
paths-ignore:
|
|
6
|
+
- '**/*.md'
|
|
7
|
+
- '**/*.code-*'
|
|
8
|
+
- '.vscode/**'
|
|
9
|
+
- '.devcontainer.json'
|
|
10
|
+
workflow_dispatch:
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
test:
|
|
14
|
+
uses: ocadotechnology/codeforlife-workspace/.github/workflows/test-javascript-code.yaml@main
|
|
15
|
+
secrets: inherit
|
|
16
|
+
with:
|
|
17
|
+
node-version: 18
|
|
18
|
+
|
|
19
|
+
release:
|
|
20
|
+
needs: [test]
|
|
21
|
+
concurrency: release
|
|
22
|
+
runs-on: ubuntu-latest
|
|
23
|
+
permissions:
|
|
24
|
+
id-token: write # to enable use of OIDC for npm provenance
|
|
25
|
+
# Release if:
|
|
26
|
+
# - the repo's owner is Ocado Tech.
|
|
27
|
+
# - a change is made to the default branch.
|
|
28
|
+
if: |
|
|
29
|
+
github.repository_owner_id == 2088731 &&
|
|
30
|
+
github.ref_name == github.event.repository.default_branch
|
|
31
|
+
steps:
|
|
32
|
+
- name: 🚀 Publish Semantic Release
|
|
33
|
+
uses: ocadotechnology/codeforlife-workspace/.github/actions/github/release@main
|
|
34
|
+
with:
|
|
35
|
+
cfl-bot-gh-token: ${{ secrets.CFL_BOT_GH_TOKEN }}
|
|
36
|
+
npm-token: ${{ secrets.NPM_TOKEN }}
|
package/.prettierignore
ADDED
package/.prettierrc.json
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"configurations": [
|
|
3
|
+
{
|
|
4
|
+
"args": [
|
|
5
|
+
"run",
|
|
6
|
+
"${relativeFile}"
|
|
7
|
+
],
|
|
8
|
+
"autoAttachChildProcesses": true,
|
|
9
|
+
"console": "integratedTerminal",
|
|
10
|
+
"name": "Vitest: Current File",
|
|
11
|
+
"program": "${workspaceFolder}/node_modules/vitest/vitest.mjs",
|
|
12
|
+
"request": "launch",
|
|
13
|
+
"skipFiles": [
|
|
14
|
+
"<node_internals>/**",
|
|
15
|
+
"**/node_modules/**"
|
|
16
|
+
],
|
|
17
|
+
"smartStep": true,
|
|
18
|
+
"type": "node"
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"version": "0.2.0"
|
|
22
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"[md]": {
|
|
3
|
+
"editor.tabSize": 4
|
|
4
|
+
},
|
|
5
|
+
"cSpell.words": [
|
|
6
|
+
"codeforlife",
|
|
7
|
+
"klass",
|
|
8
|
+
"ocado",
|
|
9
|
+
"kurono",
|
|
10
|
+
"pipenv"
|
|
11
|
+
],
|
|
12
|
+
"editor.codeActionsOnSave": {
|
|
13
|
+
"source.fixAll.eslint": "always",
|
|
14
|
+
"source.organizeImports": "never"
|
|
15
|
+
},
|
|
16
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
17
|
+
"editor.formatOnSave": true,
|
|
18
|
+
"editor.rulers": [
|
|
19
|
+
80
|
|
20
|
+
],
|
|
21
|
+
"editor.tabSize": 2,
|
|
22
|
+
"files.exclude": {
|
|
23
|
+
"**/*.tsbuildinfo": true
|
|
24
|
+
},
|
|
25
|
+
"javascript.format.semicolons": "remove",
|
|
26
|
+
"javascript.preferences.quoteStyle": "double",
|
|
27
|
+
"prettier.configPath": ".prettierrc.json",
|
|
28
|
+
"typescript.format.semicolons": "remove",
|
|
29
|
+
"typescript.preferences.quoteStyle": "double"
|
|
30
|
+
}
|