Closed r-sugi closed 2 months ago
The latest updates on your projects. Learn more about Vercel for Git ↗︎
Name | Status | Preview | Comments | Updated (UTC) |
---|---|---|---|---|
nextjs-tdd-template_storybook | ✅ Ready (Inspect) | Visit Preview | 💬 Add feedback | Sep 15, 2024 5:27am |
⏱️ Estimated effort to review: 3 🔵🔵🔵⚪⚪ |
🧪 PR contains tests |
🔒 No security concerns identified |
⚡ Key issues to review コードの重複 同じプロパティの繰り返しを避けるために、共通のプロパティを持つコンポーネントを一つのコンポーネントにまとめることを検討してください。例えば、`PrimaryLG`, `PrimaryMD`, `PrimarySM`, `PrimaryXS` などのストーリーは、ほとんど同じプロパティを持っています。これらを一つのストーリーに統合し、`args` でサイズを変更できるようにすることができます。 |
Category | Suggestion | Score |
Enhancement |
フォーカス時の視認性を向上させるためにアウトラインの太さを明確に指定する。___ **peer-focus-visible:outline は peer-focus-visible:outline-2 に変更して、アウトラインの太さを明確に指定してください。これにより、フォーカス時の視認性が向上します。** [app/src/components/checkbox/Checkbox.tsx [34-36]](https://github.com/r-sugi/nextjs-tdd-template/pull/210/files#diff-71750c681ed159416dea800070fd49228e933559c6e8a063b953064f7894045bR34-R36) ```diff -peer-focus-visible:outline +peer-focus-visible:outline-2 ``` Suggestion importance[1-10]: 8Why: The suggestion to change `peer-focus-visible:outline` to `peer-focus-visible:outline-2` is valid as it improves the focus visibility, which is crucial for accessibility. | 8 |
無効状態の視認性を向上させるために背景色を追加する。___ **peer-disabled:fill-solid-grey-420 は無効状態のスタイルとして適切ですが、視認性をさらに向上させるために背景色も指定することをお勧めします。例えば、 peer-disabled:bg-solid-grey-50 を追加することで、無効状態がより明確になります。** [app/src/components/checkbox/Checkbox.tsx [62]](https://github.com/r-sugi/nextjs-tdd-template/pull/210/files#diff-71750c681ed159416dea800070fd49228e933559c6e8a063b953064f7894045bR62-R62) ```diff -peer-disabled:fill-solid-grey-420 +peer-disabled:fill-solid-grey-420 peer-disabled:bg-solid-grey-50 ``` Suggestion importance[1-10]: 7Why: Adding a background color for the disabled state can enhance visibility and user experience, making it a useful enhancement. | 7 | |
Possible issue |
CSSクラスの修正を提案します。___ **`peer-focus-visible:outline-focus-yellow` はCSSクラスとして無効です。正しいCSSプロパティを使用してください。** [app/src/components/radio/Radio.tsx [35]](https://github.com/r-sugi/nextjs-tdd-template/pull/210/files#diff-d0092a9dc87708af01af754b50e359f4a1eaf5d40a1e50478e13a8c8767bc9fbR35-R35) ```diff -peer-focus-visible:outline-focus-yellow +peer-focus-visible:outline-yellow-500 ```Suggestion importance[1-10]: 7Why: The suggestion correctly identifies a potential issue with the CSS class `peer-focus-visible:outline-focus-yellow`, which may not be valid. Replacing it with `peer-focus-visible:outline-yellow-500` could improve the styling consistency and correctness, assuming `outline-yellow-500` is a valid class in the project's CSS framework. | 7 |
User description
209
PR Type
enhancement, tests
Description
Changes walkthrough 📝
13 files
Table.stories.tsx
テーブルコンポーネントのストーリー追加
app/src/components/table/Table.stories.tsx
Colors.tsx
カラーコンポーネントの追加と色の定義
app/src/designTokens/Colors.tsx - カラーコンポーネントを追加 - 複数の色のバリエーションを定義 - 色の変換ロジックを実装
Accordion.stories.tsx
アコーディオンコンポーネントのストーリー追加
app/src/components/accordion/Accordion.stories.tsx - アコーディオンコンポーネントのストーリーを追加 - コンパクトおよび排他的アコーディオンの例を提供
TiledRadio.tsx
タイルラジオコンポーネントの追加
app/src/components/tiledRadio/TiledRadio.tsx - タイルラジオコンポーネントを追加 - ラジオボタンのスタイルと動作を定義
Typography.tsx
タイポグラフィコンポーネントの追加
app/src/designTokens/Typography.tsx - タイポグラフィコンポーネントを追加 - 複数のテキストスタイルを定義
Radio.tsx
ラジオコンポーネントの追加
app/src/components/radio/Radio.tsx - ラジオコンポーネントを追加 - エラースタイルとフォーカススタイルを実装
Pagination.tsx
ページネーションコンポーネントの追加
app/src/components/pagination/Pagination.tsx - ページネーションコンポーネントを追加 - ページ移動のためのボタンとスタイルを定義
Checkbox.tsx
チェックボックスコンポーネントの追加
app/src/components/checkbox/Checkbox.tsx - チェックボックスコンポーネントを追加 - エラースタイルとフォーカススタイルを実装
allMembers.ts
メンバーモックデータの追加
app/src/mocks/fixtures/member/allMembers.ts - メンバーのモックデータを追加 - 複数のメンバーステータスを含む
Button.stories.tsx
ボタンコンポーネントのストーリー追加
app/src/components/button/Button.stories.tsx - ボタンコンポーネントのストーリーを追加 - 複数のバリアントとサイズの例を提供
index.tsx
管理者用メンバー一覧ページの追加
app/src/feature/admin/members/index/index.tsx - 管理者用メンバー一覧ページを追加 - メンバーステータスに基づくフィルタリングを実装
const.ts
エラー定数の追加
app/src/error/const.ts - エラー定数を追加 - システムエラーとビジネスエラーを定義
UtilityLink.stories.tsx
ユーティリティリンクコンポーネントのストーリー追加
app/src/components/utilityLink/UtilityLink.stories.tsx - ユーティリティリンクコンポーネントのストーリーを追加 - 内部リンクと外部リンクの例を提供
3 files
index.test.tsx
退会確認ページのテスト追加
app/src/feature/mypage/resignMember/confirm/index.test.tsx - 退会確認ページのテストを追加 - キャッシュの有無による動作を検証
seo.test.tsx
SEOコンポーネントのテスト追加
app/src/pages/_seo/seo.test.tsx - SEOコンポーネントのテストを追加 - メタタグの存在と内容を検証
index.test.tsx
記事ページのサーバーサイドテスト追加
app/src/pages/articles/[id]/_server/index.test.tsx - 記事ページのサーバーサイドテストを追加 - 正常系と異常系の動作を検証
211 files
graphql.tsx
...
app/src/generated/graphql.tsx ...
index.tsx
...
app/src/feature/mypage/resignMember/confirm/index.tsx ...
UtilityLink.tsx
...
app/src/components/utilityLink/UtilityLink.tsx ...
MemberTableRow.tsx
...
app/src/feature/admin/allMembers/index/table/MemberTableRow.tsx ...
Pagination.stories.tsx
...
app/src/components/pagination/Pagination.stories.tsx ...
index.tsx
...
app/src/const/paths/index.tsx ...
Button.tsx
...
app/src/components/button/Button.tsx ...
HamburgerButton.stories.tsx
...
app/src/components/hamburgerButton/HamburgerButton.stories.tsx ...
HamburgerButton.tsx
...
app/src/components/hamburgerButton/HamburgerButton.tsx ...
Breadcrumbs.tsx
...
app/src/components/breadcrumbs/Breadcrumbs.tsx ...
useResignMember.command.test.ts
...
app/src/core/usecases/member/useResignMember.command.test.ts ...
useFetchMembers.query.test.ts
...
app/src/core/usecases/member/useFetchMembers.query.test.ts ...
_appApollo.provider.tsx
...
app/src/pages/_provider/_appApollo.provider.tsx ...
BanDialog.tsx
...
app/src/feature/admin/allMembers/index/dialog/BanDialog.tsx ...
Elevation.tsx
...
app/src/designTokens/Elevation.tsx ...
index.tsx
...
app/src/feature/header/index.tsx ...
useFetchActiveMember.query.test.ts
...
app/src/core/usecases/member/useFetchActiveMember.query.test.ts ...
index.tsx
...
app/src/feature/mypage/resignMember/input/index.tsx ...
index.ts
...
app/src/mocks/fixtures/member/index.ts ...
useFetchActiveMember.query.ts
...
app/src/core/usecases/member/useFetchActiveMember.query.ts ...
Table.tsx
...
app/src/components/table/Table.tsx ...
Accordion.tsx
...
app/src/components/accordion/Accordion.tsx ...
Link.tsx
...
app/src/components/link/Link.tsx ...
Select.tsx
...
app/src/components/select/Select.tsx ...
index.ts
...
app/src/lib/logger/index.ts ...
index.tsx
...
app/src/pages/articles/[id]/_server/index.tsx ...
index.ts
...
app/src/components/index.ts ...
seo.tsx
...
app/src/pages/_seo/seo.tsx ...
ScrollToTopButton.tsx
...
app/src/components/scrollToTopButton/ScrollToTopButton.tsx ...
_error.boundary.tsx
...
app/src/pages/_error/_error.boundary.tsx ...
Breadcrumbs.stories.tsx
...
app/src/components/breadcrumbs/Breadcrumbs.stories.tsx ...
index.ts
...
app/src/utils/cache/index.ts ...
validation.test.ts
...
app/src/feature/mypage/resignMember/hooks/form/validation.test.ts ...
ErrorNotificationContext.tsx
...
app/src/feature/error/banner/ErrorNotificationContext.tsx ...
useSignIn.command.test.ts
...
app/src/shared/usecases/auth/useSignIn.command.test.ts ...
signin.tsx
...
app/src/feature/signIn/signin.tsx ...
popup.tsx
...
app/src/feature/admin/allMembers/index/popup.tsx ...
useFetchAllMembers.query.ts
...
app/src/core/usecases/member/useFetchAllMembers.query.ts ...
signup.tsx
...
app/src/feature/signup/signup.tsx ...
Radius.tsx
...
app/src/designTokens/Radius.tsx ...
useResignMember.command.ts
...
app/src/core/usecases/member/useResignMember.command.ts ...
DisableDialog.tsx
...
app/src/feature/admin/allMembers/index/dialog/DisableDialog.tsx ...
_index.page.test.tsx
...
app/src/pages/mypage/resign-member/confirm/_index.page.test.tsx ...
type.ts
...
app/src/feature/admin/allMembers/index/table/type.ts ...
index.tsx
...
app/src/feature/admin/allMembers/index/index.tsx ...
index.ts
...
app/src/shared/repositories/auth/index.ts ...
useSignOut.command.test.ts
...
app/src/shared/usecases/auth/useSignOut.command.test.ts ...
Ul.stories.tsx
...
app/src/components/ul/Ul.stories.tsx ...
errorBoundary.tsx
...
app/src/feature/mypage/resignMember/confirm/errorBoundary.tsx ...
_index.page.test.tsx
...
app/src/pages/mypage/resign-member/input/_index.page.test.tsx ...
useSignUp.command.test.ts
...
app/src/shared/usecases/auth/useSignUp.command.test.ts ...
index.ts
...
app/src/feature/mypage/resignMember/hooks/form/index.ts ...
useBanMemberForm.tsx
...
app/src/feature/admin/allMembers/index/form/useBanMemberForm.tsx ...
_index.page.test.tsx
...
app/src/pages/mypage/_index.page.test.tsx ...
transform.ts
...
app/src/error/transform/http/transform.ts ...
_error.tsx
...
app/src/pages/_error.tsx ...
ActiveMemberRow.tsx
...
app/src/feature/admin/allMembers/index/table/ActiveMemberRow.tsx ...
Textarea.tsx
...
app/src/components/textarea/Textarea.tsx ...
Dialog.tsx
...
app/src/components/dialog/Dialog.tsx ...
PendingActivationMemberRow.tsx
...
app/src/feature/admin/allMembers/index/table/PendingActivationMemberRow.tsx ...
AspectRatio.tsx
...
app/src/designTokens/AspectRatio.tsx ...
utils.ts
...
app/src/designTokens/utils.ts ...
index.page.tsx
...
app/src/pages/articles/[id]/index.page.tsx ...
Ol.stories.tsx
...
app/src/components/ol/Ol.stories.tsx ...
index.ts
...
app/src/lib/fetcher/index.ts ...
index.ts
...
app/src/lib/firebase/index.ts ...
_app.page.tsx
...
app/src/pages/_app.page.tsx ...
jest.config.ts
...
app/jest.config.ts ...
AuthGuard.tsx
...
app/src/feature/auth/component/AuthGuard.tsx ...
sentry.client.config.ts
...
app/sentry.client.config.ts ...
ErrorBanner.stories.tsx
...
app/src/feature/error/banner/ErrorBanner.stories.tsx ...
preview.tsx
...
app/.storybook/preview.tsx ...
Input.tsx
...
app/src/components/input/Input.tsx ...
activeMember.transformer.ts
...
app/src/core/repositories/member/transformer/activeMember.transformer.ts ...
Link.stories.tsx
...
app/src/components/link/Link.stories.tsx ...
seo-helper.tsx
...
app/src/__testing__/seo-helper.tsx ...
ColorItem.tsx
...
app/src/designTokens/ColorItem.tsx ...
_error.boundary.tsx
...
app/src/pages/_error/_server/_error.boundary.tsx ...
validators.ts
...
app/src/pages/articles/[id]/_server/validators.ts ...
transform.ts
...
app/src/error/transform/auth/transform.ts ...
RequirementBadge.stories.tsx
...
app/src/components/requirementBadge/RequirementBadge.stories.tsx ...
index.tsx
...
app/src/feature/signIn/hooks/form/index.tsx ...
index.tsx
...
app/src/feature/signup/hooks/form/index.tsx ...
Label.stories.tsx
...
app/src/components/label/Label.stories.tsx ...
Legend.stories.tsx
...
app/src/components/legend/Legend.stories.tsx ...
Legend.tsx
...
app/src/components/legend/Legend.tsx ...
Label.tsx
...
app/src/components/label/Label.tsx ...
RequirementBadge.tsx
...
app/src/components/requirementBadge/RequirementBadge.tsx ...
three-dots.icon.tsx
...
app/src/feature/admin/allMembers/index/three-dots.icon.tsx ...
index.page.tsx
...
app/src/pages/mypage/index.page.tsx ...
auth.ts
...
app/src/__mocks__/firebase/auth.ts ...
main.ts
...
app/.storybook/main.ts ...
index.page.ts
...
app/src/pages/api/articles/[id]/index.page.ts ...
ScrollToTopButton.stories.tsx
...
app/src/components/scrollToTopButton/ScrollToTopButton.stories.tsx ...
table.tsx
...
app/src/feature/admin/allMembers/index/table/table.tsx ...
sentry.edge.config.ts
...
app/sentry.edge.config.ts ...
sentry.server.config.ts
...
app/sentry.server.config.ts ...
member.ts
...
app/src/core/domains/member/member.ts ...
validation.ts
...
app/src/feature/mypage/resignMember/hooks/form/validation.ts ...
SupportText.tsx
...
app/src/components/supportText/SupportText.tsx ...
ErrorText.tsx
...
app/src/components/errorText/ErrorText.tsx ...
Ul.tsx
...
app/src/components/ul/Ul.tsx ...
Ol.tsx
...
app/src/components/ol/Ol.tsx ...
ErrorText.stories.tsx
...
app/src/components/errorText/ErrorText.stories.tsx ...
SupportText.stories.tsx
...
app/src/components/supportText/SupportText.stories.tsx ...
Elevation.stories.tsx
...
app/src/designTokens/Elevation.stories.tsx ...
AspectRatio.stories.tsx
...
app/src/designTokens/AspectRatio.stories.tsx ...
transformError.ts
...
app/src/pages/articles/[id]/_server/transformError.ts ...
Colors.stories.tsx
...
app/src/designTokens/Colors.stories.tsx ...
Radius.stories.tsx
...
app/src/designTokens/Radius.stories.tsx ...
MembersList.tsx
...
app/src/feature/admin/members/index/MembersList.tsx ...
errorScreen.tsx
...
app/src/pages/articles/[id]/_server/errorScreen.tsx ...
Typography.stories.tsx
...
app/src/designTokens/Typography.stories.tsx ...
HttpError.ts
...
app/src/error/transform/http/HttpError.ts ...
article.ts
...
app/src/mocks/fixtures/article.ts ...
ErrorBanner.tsx
...
app/src/feature/error/banner/ErrorBanner.tsx ...
MenuItem.tsx
...
app/src/feature/admin/allMembers/index/list/MenuItem.tsx ...
errorScreen.tsx
...
app/src/feature/mypage/resignMember/confirm/errorScreen.tsx ...
index.page.tsx
...
app/src/pages/mypage/resign-member/confirm/index.page.tsx ...
index.tsx
...
app/src/feature/mypage/index/index.tsx ...
index.page.tsx
...
app/src/pages/mypage/resign-member/input/index.page.tsx ...
ErrorNotificationContext.ts
...
app/src/feature/error/banner/__mock__/ErrorNotificationContext.ts ...
helper.tsx
...
app/src/__testing__/helper.tsx ...
allMembers.transformer.ts
...
app/src/core/repositories/member/transformer/allMembers.transformer.ts ...
_error.screen.tsx
...
app/src/pages/_error/_server/_error.screen.tsx ...
useSignUp.command.tsx
...
app/src/shared/usecases/auth/useSignUp.command.tsx ...
useSignIn.command.tsx
...
app/src/shared/usecases/auth/useSignIn.command.tsx ...
membersByStatus.transformer.ts
...
app/src/core/repositories/member/transformer/membersByStatus.transformer.ts ...
_index.page.test.tsx
...
app/src/pages/articles/[id]/_index.page.test.tsx ...
env.ts
...
app/src/config/env.ts ...
useSignOut.command.tsx
...
app/src/shared/usecases/auth/useSignOut.command.tsx ...
_app.provider.tsx
...
app/src/pages/_provider/_app.provider.tsx ...
useFetchMembers.query.ts
...
app/src/core/usecases/member/useFetchMembers.query.ts ...
StubAuthProvider.tsx
...
app/src/feature/auth/provider/StubAuthProvider.tsx ...
transformError.ts
...
app/src/shared/repositories/auth/transformError.ts ...
_document.page.tsx
...
app/src/pages/_document.page.tsx ...
activeMember.ts
...
app/src/mocks/fixtures/activeMember.ts ...
index.page.tsx
...
app/src/pages/signIn/index.page.tsx ...
index.ts
...
app/src/mocks/rest/article/index.ts ...
index.page.tsx
...
app/src/pages/signUp/index.page.tsx ...
_error.screen.tsx
...
app/src/pages/_error/_error.screen.tsx ...
members.repository.ts
...
app/src/core/repositories/member/members.repository.ts ...
transform.ts
...
app/src/error/transform/boundary/transform.ts ...
transform.ts
...
app/src/error/transform/unexpected/transform.ts ...
index.test.tsx
...
app/src/feature/mypage/resignMember/input/index.test.tsx ...
index.test.tsx
...
app/src/feature/admin/members/index/index.test.tsx ...
type.ts
...
app/src/utils/cache/type.ts ...
activeMember.ts
...
app/src/core/domains/member/activeMember.ts ...
useWebStorage.ts
...
app/src/utils/cache/useWebStorage.ts ...
index.ts
...
app/src/mocks/index.ts ...
transform.ts
...
app/src/error/transform/unhandledRejection/transform.ts ...
_index.page.test.tsx
...
app/src/pages/admin/members/_index.page.test.tsx ...
resignMember.ts
...
app/src/core/domains/member/resignMember.ts ...
app.ts
...
app/src/__mocks__/firebase/app.ts ...
transformError.ts
...
app/src/core/repositories/member/transformError.ts ...
useStubAuthContext.tsx
...
app/src/mocks/fixtures/provider/useStubAuthContext.tsx ...
_index.page.test.tsx
...
app/src/pages/_index.page.test.tsx ...
index.page.tsx
...
app/src/pages/admin/allMembers/index.page.tsx ...
index.page.tsx
...
app/src/pages/admin/members/index.page.tsx ...
articles.repository.ts
...
app/src/core/repositories/article/articles.repository.ts ...
AuthProvider.tsx
...
app/src/feature/auth/provider/AuthProvider.tsx ...
resignMember.transformer.ts
...
app/src/core/repositories/member/transformer/resignMember.transformer.ts ...
instrumentation.ts
...
app/src/instrumentation.ts ...
status.ts
...
app/src/core/domains/member/status.ts ...
bannedMember.ts
...
app/src/core/domains/member/bannedMember.ts ...
restoredMember.ts
...
app/src/core/domains/member/restoredMember.ts ...
index.stories.tsx
...
app/src/feature/admin/members/index/index.stories.tsx ...
outputErrorLog.ts
...
app/src/error/outputErrorLog.ts ...
validation.ts
...
app/src/feature/signIn/hooks/form/validation.ts ...
validation.ts
...
app/src/feature/signup/hooks/form/validation.ts ...
TiledRadio.stories.tsx
...
app/src/components/tiledRadio/TiledRadio.stories.tsx ...
pendingActivationMember.ts
...
app/src/core/domains/member/pendingActivationMember.ts ...
index.test.tsx
...
app/src/feature/mypage/index/index.test.tsx ...
index.page.tsx
...
app/src/pages/index.page.tsx ...
transform.ts
...
app/src/error/transform/apollo/transform.ts ...
jest.setup.ts
...
app/jest.setup.ts ...
Textarea.stories.tsx
...
app/src/components/textarea/Textarea.stories.tsx ...
Checkbox.stories.tsx
...
app/src/components/checkbox/Checkbox.stories.tsx ...
Radio.stories.tsx
...
app/src/components/radio/Radio.stories.tsx ...
next-env.d.ts
...
app/next-env.d.ts ...
Select.stories.tsx
...
app/src/components/select/Select.stories.tsx ...
Input.stories.tsx
...
app/src/components/input/Input.stories.tsx ...
index.test.ts
...
app/src/utils/cache/index.test.ts ...
Dialog.stories.tsx
...
app/src/components/dialog/Dialog.stories.tsx ...
article.ts
...
app/src/core/domains/article/article.ts ...
index.tsx
...
app/src/feature/index/index.tsx ...
browser.ts
...
app/src/mocks/browser.ts ...
error.ts
...
app/src/utils/cache/error.ts ...
server.ts
...
app/src/mocks/server.ts ...
nextjs.ts
...
app/src/__mocks__/@sentry/nextjs.ts ...
restHandlers.ts
...
app/src/mocks/rest/restHandlers.ts ...
mockServiceWorker.js
...
app/public/mockServiceWorker.js ...
codegen.js
...
app/codegen.js ...
biome.js
...
app/biome.js ...
knip.js
...
app/knip.js ...
jest.polyfills.js
...
app/jest.polyfills.js ...
tailwind.config.js
...
app/tailwind.config.js ...
postcss.config.js
...
app/postcss.config.js ...
globals.css
...
app/src/styles/globals.css ...
graphql.schema.json
...
app/graphql.schema.json ...
package-lock.json
...
app/package-lock.json ...
next.config.mjs
...
app/next.config.mjs ...
lefthook.yml
...
lefthook.yml ...
tsconfig.json
...
app/tsconfig.json ...
QueryMembersByStatus.graphql
...
app/src/core/repositories/member/graphql/QueryMembersByStatus.graphql ...
QueryAllMembers.graphql
...
app/src/core/repositories/member/graphql/QueryAllMembers.graphql ...
lefthook.yml
...
app/lefthook.yml ...
package.json
...
app/package.json ...
settings.json
...
.vscode/settings.json ...
QueryActiveMember.graphql
...
app/src/core/repositories/member/graphql/QueryActiveMember.graphql ...
MutationResignMember.graphql
...
app/src/core/repositories/member/graphql/MutationResignMember.graphql ...