From 3f684a90b4e84c2f0117ab10edf39fc412ca3e6d Mon Sep 17 00:00:00 2001 From: Yoshihiro OKUMURA Date: Thu, 11 Jun 2026 00:59:27 +0900 Subject: [PATCH] fix: correct typo and extract shared Notice component Fix typo "Arrangemtns" to "Arrangements" in figure captions for all 16 TE*.json dataset files. Extract a reusable Notice component from Contact and News pages to avoid duplicated inline notice markup. Replace react-helmet-async with @dr.pogodin/react-helmet. Add VS Code workspace config and cspell dictionary. --- .gitignore | 3 +- .vscode/launch.json | 16 +++++ .vscode/settings.json | 38 ++++++++++++ .vscode/tasks.json | 20 +++++++ cspell.json | 33 +++++++++++ index.html | 2 +- package-lock.json | 77 +++++++++---------------- package.json | 4 +- public/data/TE0001.json | 2 +- public/data/TE0002.json | 2 +- public/data/TE0003.json | 2 +- public/data/TE0004.json | 2 +- public/data/TE0005.json | 2 +- public/data/TE0006.json | 2 +- public/data/TE0007.json | 2 +- public/data/TE0008.json | 2 +- public/data/TE0009.json | 2 +- public/data/TE0010.json | 2 +- public/data/TE0011.json | 2 +- public/data/TE0012.json | 2 +- public/data/TE0013.json | 2 +- public/data/TE0014.json | 2 +- public/data/TE0015.json | 2 +- public/data/TE0016.json | 2 +- src/features/contact/Contact.module.css | 4 -- src/features/contact/Contact.tsx | 5 +- src/features/news/News.module.css | 4 +- src/features/news/News.tsx | 2 + src/features/notice/Notice.module.css | 4 ++ src/features/notice/Notice.tsx | 10 ++++ src/features/page-title/PageTitle.tsx | 2 +- src/index.tsx | 2 +- 32 files changed, 175 insertions(+), 83 deletions(-) create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100644 .vscode/tasks.json create mode 100644 cspell.json create mode 100644 src/features/notice/Notice.module.css create mode 100644 src/features/notice/Notice.tsx diff --git a/.gitignore b/.gitignore index 7145a8c..223d9f9 100644 --- a/.gitignore +++ b/.gitignore @@ -23,8 +23,7 @@ dist-ssr *.local # Editor directories and files -.vscode/* -!.vscode/extensions.json +#.vscode .idea .DS_Store *.suo diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..8445274 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,16 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "chrome", + "request": "launch", + "name": "Launch Chrome against localhost", + "url": "http://localhost:5173", + "webRoot": "${workspaceFolder}", + "preLaunchTask": "npm: dev" + } + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..a1b89d5 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,38 @@ +{ + "editor.formatOnSave": true, + "editor.codeActionsOnSave": { + "source.fixAll.biome": "explicit" + }, + "[css]": { + "editor.defaultFormatter": "biomejs.biome" + }, + "[javascript]": { + "editor.defaultFormatter": "biomejs.biome" + }, + "[javascriptreact]": { + "editor.defaultFormatter": "biomejs.biome" + }, + "[json]": { + "editor.defaultFormatter": "biomejs.biome" + }, + "[jsonc]": { + "editor.defaultFormatter": "biomejs.biome" + }, + "[typescript]": { + "editor.defaultFormatter": "biomejs.biome" + }, + "[typescriptreact]": { + "editor.defaultFormatter": "biomejs.biome" + }, + // Extensions - Biome + // - see: biome.json + // Exteions - cSpell + // - see: .cspell.json + // Extensions - ESLint + "eslint.enable": false, + // Extensions - HTML + "html.format.wrapLineLength": 0, + // Extentions - Typescript + "javascript.updateImportsOnFileMove.enabled": "always", + "typescript.updateImportsOnFileMove.enabled": "always" +} diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..ee76fa1 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,20 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "type": "npm", + "script": "dev", + "isBackground": true, + "problemMatcher": { + "owner": "custom", + "pattern": { "regexp": "^$" }, + "background": { + "activeOnStart": true, + "beginsPattern": ".*", + "endsPattern": "Local:" + } + }, + "label": "npm: dev" + } + ] +} diff --git a/cspell.json b/cspell.json new file mode 100644 index 0000000..976813b --- /dev/null +++ b/cspell.json @@ -0,0 +1,33 @@ +{ + "version": "0.2", + "language": "en,en-GB", + "words": [ + "Aergic", + "astrocytes", + "celloc", + "Ebina", + "Flpe", + "geometory", + "glutamatergic", + "Hioki", + "Hirosawa", + "Imayoshi", + "Kameda", + "Kaneko", + "Kimura", + "NOWEBGL", + "pogodin", + "RIKEN", + "Saitama", + "SDCN", + "Sohya", + "Tadaharu", + "Teppei", + "Tsumoto", + "VGAT", + "Wako", + "webgl", + "Yanagawa" + ], + "ignorePaths": ["dist", "node_modules", "package-lock.json"] +} diff --git a/index.html b/index.html index d3f06a8..ac96d82 100644 --- a/index.html +++ b/index.html @@ -7,7 +7,7 @@ CelLoc3D Server diff --git a/package-lock.json b/package-lock.json index d5f6871..944f52f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,19 +1,19 @@ { "name": "celloc3d", - "version": "3.0.0", + "version": "3.0.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "celloc3d", - "version": "3.0.0", + "version": "3.0.1", "dependencies": { + "@dr.pogodin/react-helmet": "^3.2.2", "@reduxjs/toolkit": "^2.12.0", "ky": "^2.0.2", "react": "^19.2.7", "react-dom": "^19.2.7", "react-ga4": "^3.0.1", - "react-helmet-async": "^3.0.0", "react-redux": "^9.3.0", "react-router-dom": "^7.17.0", "redux": "^5.0.1", @@ -233,7 +233,6 @@ "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz", "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -457,6 +456,19 @@ "dev": true, "license": "Apache-2.0" }, + "node_modules/@dr.pogodin/react-helmet": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@dr.pogodin/react-helmet/-/react-helmet-3.2.2.tgz", + "integrity": "sha512-ejHvL56wsjNRfzOWvBzBXZXKCls2beMIf63Cz1yEMi5OFfsdBQHEiy0ux6665qzPXXAqHws4tnnWRiA/fpaQBg==", + "license": "Apache-2.0", + "dependencies": { + "@babel/runtime": "^7.29.2", + "react-compiler-runtime": "^1.0.0" + }, + "peerDependencies": { + "react": "19" + } + }, "node_modules/@emnapi/core": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", @@ -2100,15 +2112,6 @@ "node": ">=0.8.19" } }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -2143,6 +2146,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, "license": "MIT" }, "node_modules/jsesc": { @@ -2505,18 +2509,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -2741,6 +2733,15 @@ "node": ">=0.10.0" } }, + "node_modules/react-compiler-runtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/react-compiler-runtime/-/react-compiler-runtime-1.0.0.tgz", + "integrity": "sha512-rRfjYv66HlG8896yPUDONgKzG5BxZD1nV9U6rkm+7VCuvQc903C4MjcoZR4zPw53IKSOX9wMQVpA1IAbRtzQ7w==", + "license": "MIT", + "peerDependencies": { + "react": "^17.0.0 || ^18.0.0 || ^19.0.0 || ^0.0.0-experimental" + } + }, "node_modules/react-dom": { "version": "19.2.7", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.7.tgz", @@ -2753,32 +2754,12 @@ "react": "^19.2.7" } }, - "node_modules/react-fast-compare": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", - "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==", - "license": "MIT" - }, "node_modules/react-ga4": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/react-ga4/-/react-ga4-3.0.1.tgz", "integrity": "sha512-GyCc01bSheWXjzGDyHsXMOqk/SP5Cf/JrcJTg4hcpKx4eeSwaJKpJUc+ipF4ffLTZkmabmf3ZGBv4OKHTXNXyA==", "license": "MIT" }, - "node_modules/react-helmet-async": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-3.0.0.tgz", - "integrity": "sha512-nA3IEZfXiclgrz4KLxAhqJqIfFDuvzQwlKwpdmzZIuC1KNSghDEIXmyU0TKtbM+NafnkICcwx8CECFrZ/sL/1w==", - "license": "Apache-2.0", - "dependencies": { - "invariant": "^2.2.4", - "react-fast-compare": "^3.2.2", - "shallowequal": "^1.1.0" - }, - "peerDependencies": { - "react": "^16.6.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, "node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", @@ -2924,12 +2905,6 @@ "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", "license": "MIT" }, - "node_modules/shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", - "license": "MIT" - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", diff --git a/package.json b/package.json index 342e2e0..cbf6bcc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "celloc3d", - "version": "3.0.0", + "version": "3.0.1", "private": true, "type": "module", "scripts": { @@ -12,12 +12,12 @@ "preview": "vite preview" }, "dependencies": { + "@dr.pogodin/react-helmet": "^3.2.2", "@reduxjs/toolkit": "^2.12.0", "ky": "^2.0.2", "react": "^19.2.7", "react-dom": "^19.2.7", "react-ga4": "^3.0.1", - "react-helmet-async": "^3.0.0", "react-redux": "^9.3.0", "react-router-dom": "^7.17.0", "redux": "^5.0.1", diff --git a/public/data/TE0001.json b/public/data/TE0001.json index bdb63b7..5a261ab 100644 --- a/public/data/TE0001.json +++ b/public/data/TE0001.json @@ -3,7 +3,7 @@ "author": "Ebina, T., Sohya, K., Imayoshi, I., Yin, S.T., Kimura, R., Yanagawa, Y., Kameda, H., Hioki, H., Kaneko, T., and Tsumoto, T.", "figure": { "file": "\/data\/TE0001.png", - "caption": "3D Arrangemtns of cells in TE0001" + "caption": "3D Arrangements of cells in TE0001" }, "download": "\/data\/TE0001.dat", "view": "\/data\/TE0001\/viewer", diff --git a/public/data/TE0002.json b/public/data/TE0002.json index bf15530..4b2d496 100644 --- a/public/data/TE0002.json +++ b/public/data/TE0002.json @@ -3,7 +3,7 @@ "author": "Ebina, T., Sohya, K., Imayoshi, I., Yin, S.T., Kimura, R., Yanagawa, Y., Kameda, H., Hioki, H., Kaneko, T., and Tsumoto, T.", "figure": { "file": "\/data\/TE0002.png", - "caption": "3D Arrangemtns of cells in TE0002" + "caption": "3D Arrangements of cells in TE0002" }, "download": "\/data\/TE0002.dat", "view": "\/data\/TE0002\/viewer", diff --git a/public/data/TE0003.json b/public/data/TE0003.json index dbe3837..b00bded 100644 --- a/public/data/TE0003.json +++ b/public/data/TE0003.json @@ -3,7 +3,7 @@ "author": "Ebina, T., Sohya, K., Imayoshi, I., Yin, S.T., Kimura, R., Yanagawa, Y., Kameda, H., Hioki, H., Kaneko, T., and Tsumoto, T.", "figure": { "file": "\/data\/TE0003.png", - "caption": "3D Arrangemtns of cells in TE0003" + "caption": "3D Arrangements of cells in TE0003" }, "download": "\/data\/TE0003.dat", "view": "\/data\/TE0003\/viewer", diff --git a/public/data/TE0004.json b/public/data/TE0004.json index 9c2b0bd..aace187 100644 --- a/public/data/TE0004.json +++ b/public/data/TE0004.json @@ -3,7 +3,7 @@ "author": "Ebina, T., Sohya, K., Imayoshi, I., Yin, S.T., Kimura, R., Yanagawa, Y., Kameda, H., Hioki, H., Kaneko, T., and Tsumoto, T.", "figure": { "file": "\/data\/TE0004.png", - "caption": "3D Arrangemtns of cells in TE0004" + "caption": "3D Arrangements of cells in TE0004" }, "download": "\/data\/TE0004.dat", "view": "\/data\/TE0004\/viewer", diff --git a/public/data/TE0005.json b/public/data/TE0005.json index 4fd0775..a712390 100644 --- a/public/data/TE0005.json +++ b/public/data/TE0005.json @@ -3,7 +3,7 @@ "author": "Ebina, T., Sohya, K., Imayoshi, I., Yin, S.T., Kimura, R., Yanagawa, Y., Kameda, H., Hioki, H., Kaneko, T., and Tsumoto, T.", "figure": { "file": "\/data\/TE0005.png", - "caption": "3D Arrangemtns of cells in TE0005" + "caption": "3D Arrangements of cells in TE0005" }, "download": "\/data\/TE0005.dat", "view": "\/data\/TE0005\/viewer", diff --git a/public/data/TE0006.json b/public/data/TE0006.json index 2f49390..f2aac90 100644 --- a/public/data/TE0006.json +++ b/public/data/TE0006.json @@ -3,7 +3,7 @@ "author": "Ebina, T., Sohya, K., Imayoshi, I., Yin, S.T., Kimura, R., Yanagawa, Y., Kameda, H., Hioki, H., Kaneko, T., and Tsumoto, T.", "figure": { "file": "\/data\/TE0006.png", - "caption": "3D Arrangemtns of cells in TE0006" + "caption": "3D Arrangements of cells in TE0006" }, "download": "\/data\/TE0006.dat", "view": "\/data\/TE0006\/viewer", diff --git a/public/data/TE0007.json b/public/data/TE0007.json index 9cc7e61..15e3906 100644 --- a/public/data/TE0007.json +++ b/public/data/TE0007.json @@ -3,7 +3,7 @@ "author": "Ebina, T., Sohya, K., Imayoshi, I., Yin, S.T., Kimura, R., Yanagawa, Y., Kameda, H., Hioki, H., Kaneko, T., and Tsumoto, T.", "figure": { "file": "\/data\/TE0007.png", - "caption": "3D Arrangemtns of cells in TE0007" + "caption": "3D Arrangements of cells in TE0007" }, "download": "\/data\/TE0007.dat", "view": "\/data\/TE0007\/viewer", diff --git a/public/data/TE0008.json b/public/data/TE0008.json index 107f25e..dbcfdcd 100644 --- a/public/data/TE0008.json +++ b/public/data/TE0008.json @@ -3,7 +3,7 @@ "author": "Ebina, T., Sohya, K., Imayoshi, I., Yin, S.T., Kimura, R., Yanagawa, Y., Kameda, H., Hioki, H., Kaneko, T., and Tsumoto, T.", "figure": { "file": "\/data\/TE0008.png", - "caption": "3D Arrangemtns of cells in TE0008" + "caption": "3D Arrangements of cells in TE0008" }, "download": "\/data\/TE0008.dat", "view": "\/data\/TE0008\/viewer", diff --git a/public/data/TE0009.json b/public/data/TE0009.json index ea414ed..3682efe 100644 --- a/public/data/TE0009.json +++ b/public/data/TE0009.json @@ -3,7 +3,7 @@ "author": "Ebina, T., Sohya, K., Imayoshi, I., Yin, S.T., Kimura, R., Yanagawa, Y., Kameda, H., Hioki, H., Kaneko, T., and Tsumoto, T.", "figure": { "file": "\/data\/TE0009.png", - "caption": "3D Arrangemtns of cells in TE0009" + "caption": "3D Arrangements of cells in TE0009" }, "download": "\/data\/TE0009.dat", "view": "\/data\/TE0009\/viewer", diff --git a/public/data/TE0010.json b/public/data/TE0010.json index 0df3ba8..786d129 100644 --- a/public/data/TE0010.json +++ b/public/data/TE0010.json @@ -3,7 +3,7 @@ "author": "Ebina, T., Sohya, K., Imayoshi, I., Yin, S.T., Kimura, R., Yanagawa, Y., Kameda, H., Hioki, H., Kaneko, T., and Tsumoto, T.", "figure": { "file": "\/data\/TE0010.png", - "caption": "3D Arrangemtns of cells in TE0010" + "caption": "3D Arrangements of cells in TE0010" }, "download": "\/data\/TE0010.dat", "view": "\/data\/TE0010\/viewer", diff --git a/public/data/TE0011.json b/public/data/TE0011.json index 87084a5..bb1090c 100644 --- a/public/data/TE0011.json +++ b/public/data/TE0011.json @@ -3,7 +3,7 @@ "author": "Ebina, T., Sohya, K., Imayoshi, I., Yin, S.T., Kimura, R., Yanagawa, Y., Kameda, H., Hioki, H., Kaneko, T., and Tsumoto, T.", "figure": { "file": "\/data\/TE0011.png", - "caption": "3D Arrangemtns of cells in TE0011" + "caption": "3D Arrangements of cells in TE0011" }, "download": "\/data\/TE0011.dat", "view": "\/data\/TE0011\/viewer", diff --git a/public/data/TE0012.json b/public/data/TE0012.json index ad29a8a..8ccfcc2 100644 --- a/public/data/TE0012.json +++ b/public/data/TE0012.json @@ -3,7 +3,7 @@ "author": "Ebina, T., Sohya, K., Imayoshi, I., Yin, S.T., Kimura, R., Yanagawa, Y., Kameda, H., Hioki, H., Kaneko, T., and Tsumoto, T.", "figure": { "file": "\/data\/TE0012.png", - "caption": "3D Arrangemtns of cells in TE0012" + "caption": "3D Arrangements of cells in TE0012" }, "download": "\/data\/TE0012.dat", "view": "\/data\/TE0012\/viewer", diff --git a/public/data/TE0013.json b/public/data/TE0013.json index 1327454..45e6935 100644 --- a/public/data/TE0013.json +++ b/public/data/TE0013.json @@ -3,7 +3,7 @@ "author": "Ebina, T., Sohya, K., Imayoshi, I., Yin, S.T., Kimura, R., Yanagawa, Y., Kameda, H., Hioki, H., Kaneko, T., and Tsumoto, T.", "figure": { "file": "\/data\/TE0013.png", - "caption": "3D Arrangemtns of cells in TE0013" + "caption": "3D Arrangements of cells in TE0013" }, "download": "\/data\/TE0013.dat", "view": "\/data\/TE0013\/viewer", diff --git a/public/data/TE0014.json b/public/data/TE0014.json index ca2357f..10ee7f4 100644 --- a/public/data/TE0014.json +++ b/public/data/TE0014.json @@ -3,7 +3,7 @@ "author": "Ebina, T., Sohya, K., Imayoshi, I., Yin, S.T., Kimura, R., Yanagawa, Y., Kameda, H., Hioki, H., Kaneko, T., and Tsumoto, T.", "figure": { "file": "\/data\/TE0014.png", - "caption": "3D Arrangemtns of cells in TE0014" + "caption": "3D Arrangements of cells in TE0014" }, "download": "\/data\/TE0014.dat", "view": "\/data\/TE0014\/viewer", diff --git a/public/data/TE0015.json b/public/data/TE0015.json index 612a426..b816a3a 100644 --- a/public/data/TE0015.json +++ b/public/data/TE0015.json @@ -3,7 +3,7 @@ "author": "Ebina, T., Sohya, K., Imayoshi, I., Yin, S.T., Kimura, R., Yanagawa, Y., Kameda, H., Hioki, H., Kaneko, T., and Tsumoto, T.", "figure": { "file": "\/data\/TE0015.png", - "caption": "3D Arrangemtns of cells in TE0015" + "caption": "3D Arrangements of cells in TE0015" }, "download": "\/data\/TE0015.dat", "view": "\/data\/TE0015\/viewer", diff --git a/public/data/TE0016.json b/public/data/TE0016.json index ac383d8..49d7fd3 100644 --- a/public/data/TE0016.json +++ b/public/data/TE0016.json @@ -3,7 +3,7 @@ "author": "Ebina, T., Sohya, K., Imayoshi, I., Yin, S.T., Kimura, R., Yanagawa, Y., Kameda, H., Hioki, H., Kaneko, T., and Tsumoto, T.", "figure": { "file": "\/data\/TE0016.png", - "caption": "3D Arrangemtns of cells in TE0016" + "caption": "3D Arrangements of cells in TE0016" }, "download": "\/data\/TE0016.dat", "view": "\/data\/TE0016\/viewer", diff --git a/src/features/contact/Contact.module.css b/src/features/contact/Contact.module.css index 71bd1e8..d0ba2f5 100644 --- a/src/features/contact/Contact.module.css +++ b/src/features/contact/Contact.module.css @@ -7,10 +7,6 @@ .contact p { margin: 5px 0 15px 15px; } -.notice { - margin: 10px 0 20px; - color: #ff0000; -} .note { margin-left: 15px; font-style: italic; diff --git a/src/features/contact/Contact.tsx b/src/features/contact/Contact.tsx index 4eff7e5..8461c79 100644 --- a/src/features/contact/Contact.tsx +++ b/src/features/contact/Contact.tsx @@ -1,6 +1,7 @@ import type React from 'react'; import { useEffect } from 'react'; import { useAppDispatch } from '../../app/hooks'; +import Notice from '../notice/Notice'; import { setTitle } from '../page-title/pageTitleSlice'; import styles from './Contact.module.css'; @@ -11,9 +12,7 @@ const Contact: React.FC = () => { }, [dispatch]); return (
-
- Notice: This site has been archived since May 2019 and is no longer updated. -
+

CelLoc-3D is managed by Teppei Ebina and Tadaharu Tsumoto

Laboratory for cortical circuit plasticity diff --git a/src/features/news/News.module.css b/src/features/news/News.module.css index 79e6e76..24a7696 100644 --- a/src/features/news/News.module.css +++ b/src/features/news/News.module.css @@ -1,8 +1,8 @@ .news { - margin: 10px; + margin: 20px; } .item { - margin: 0 10px 10px 10px; + margin: 0 0 10px 0; } .item:after { content: "."; diff --git a/src/features/news/News.tsx b/src/features/news/News.tsx index 6fd6da0..4823493 100644 --- a/src/features/news/News.tsx +++ b/src/features/news/News.tsx @@ -3,6 +3,7 @@ import { useEffect } from 'react'; import { useAppDispatch } from '../../app/hooks'; import JsonNews_ from '../../assets/news.json'; import nl2br from '../../utils/nl2br'; +import Notice from '../notice/Notice'; import { setTitle } from '../page-title/pageTitleSlice'; import styles from './News.module.css'; @@ -23,6 +24,7 @@ const News: React.FC = () => { return (

+ {JsonNews.map((item, key) => { return ( // biome-ignore lint/suspicious/noArrayIndexKey: static JSON data diff --git a/src/features/notice/Notice.module.css b/src/features/notice/Notice.module.css new file mode 100644 index 0000000..6162a28 --- /dev/null +++ b/src/features/notice/Notice.module.css @@ -0,0 +1,4 @@ +.notice { + margin: 10px 0 20px; + color: #ff0000; +} diff --git a/src/features/notice/Notice.tsx b/src/features/notice/Notice.tsx new file mode 100644 index 0000000..07f5878 --- /dev/null +++ b/src/features/notice/Notice.tsx @@ -0,0 +1,10 @@ +import type React from 'react'; +import styles from './Notice.module.css'; + +const Notice: React.FC = () => { + return ( +
This site has been archived since May 2019 and is no longer updated.
+ ); +}; + +export default Notice; diff --git a/src/features/page-title/PageTitle.tsx b/src/features/page-title/PageTitle.tsx index 81f85c1..5ab5762 100644 --- a/src/features/page-title/PageTitle.tsx +++ b/src/features/page-title/PageTitle.tsx @@ -1,5 +1,5 @@ +import { Helmet } from '@dr.pogodin/react-helmet'; import type React from 'react'; -import { Helmet } from 'react-helmet-async'; import { useAppSelector } from '../../app/hooks'; import styles from './PageTitle.module.css'; import { selectPageTitle } from './pageTitleSlice'; diff --git a/src/index.tsx b/src/index.tsx index 535f634..3ddb2db 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -1,6 +1,6 @@ +import { HelmetProvider } from '@dr.pogodin/react-helmet'; import React from 'react'; import ReactDOM from 'react-dom/client'; -import { HelmetProvider } from 'react-helmet-async'; import { Provider } from 'react-redux'; import App from './App'; import { store } from './app/store';