Git Product home page Git Product logo

check-attendance-docker's People

Contributors

leo-ando avatar oxyut avatar taiyaki-man avatar

Watchers

 avatar

check-attendance-docker's Issues

add-button

一言で

  • ボタン大とボタン小のreact componentを作成してほしい

詳細

  • ボタンに求める機能
    • props
      • onClick<() => void> : クリック時に走る関数
      • disabled : 押せる状態かどうか
        • trueの場合ボタンは押せず、disabledなカラーにする
        • buttonのdefaultのpropsにある
      • ableColor<"primary" | "secondary">: 押せる状態の時の色の指定
      • children : ボタンに表示する文字
  • 見た目
    • tailwind.config.jsでprimary, secondary, disabledのカラーを指定してください
      • カラーパレットは前回指定した通りです
    • hoverで色を濃くするようにしてください
    • disabledの場合は「クリックできない感」を出してください
    • その他創意工夫大歓迎です
  • 大と小
    • 大と小をデザイン例を参考に作ってください
    • SmallButton.tsxとLargeButton.tsxを/src/app/components下に作成してください
    • あるいは、proposでsize <"small" | "large">を受け取って大きさを変えられるようにしてください
      • どっちかというとこっちのほうが望ましい
  • テスト
    • /src/app/pages/test-button/page.tsxを作成し、ボタンの各機能がテストできるようにボタンを配置してください
    • onClickにはconsole.log("hello world")とでも入れておいてください

デザイン例

  • ボタン大:押せる状態
    ボタン大-abled
  • ボタン大:押せない状態
    ボタン大-disabled
  • ボタン小:押せる状態
    スクリーンショット 2023-12-15 9 45 58

`/src/app/attend/[id].tsx`の作成

一言で

  • 各ユーザーが登校登録をするフォームをsrc/app/attend/[id].tsxに作成してほしい

詳細

  • ボタンは/src/components/Button.tsxlargeで使用してください

UIデザイン例

  • 登校していない場合
image
  • 登校した場合
image
  • 遅刻&登校していない場合
image
  • 遅刻&登校した場合
    • 公欠している場合は赤太字にしない
image

attend-uiのPOST後のリフレッシュ改善

const queryClient = useQueryClient(); // new QueryClient(); ではなく

const { mutate } = useMutation({
  mutationFn: async (data: { id: string }) => {
    const { data: res } = await axios.post("/api/attend", data);
    console.log(res);
  },
  onSuccess: () => {
    queryClient.invalidateQueries({ queryKey: ["attendInfo", userId] });
    queryClient.invalidateQueries({ queryKey: ["userInfo", userId] });
  },
});

とすることで自然なリフレッシュが可能?

add-admin-page

一言で

  • 現在のユーザ一覧の取得とユーザを追加できるページの作成

詳細

  • 現在ルート"/"にとりあえず置かれている内容をadminに移して運用できるようにする
  • ヘッダーのアイコン:import { FaUserCog } from "react-icons/fa";
  • とりあえずユーザ一覧を取得して表として見せる
    • 「ユーザー一覧」の文字はh2とかh3で
    • これ使ってみて:https://www.material-react-table.com
    • idは途中で省略して横スクロールできるように
    • 10件を上限に、ボタンで次の表に遷移できるような実装ができるはず
  • ユーザを追加できるフォームを作成
    • 「ユーザー追加フォーム」の文字はh2とかh3で
    • 時刻選択はドラムロール(年月日は2000年1月1日で固定してください)
    • 名前と日付入れない限りボタンはdisabledに
  • 余裕があればめっちゃ簡単なパスワード保護ができると良いかも(useStateとかで)
  • ゆくゆくは表から各人のページに飛べるようなルーティングも設定したい

UIイメージ

スクリーンショット 2023-12-14 16 29 26

タスク

  • admin/page.tsxの追加
  • ユーザ一覧の表の作成
  • ユーザー追加フォームの作成
  • (more)パスワード保護
  • (more)ルーティングの設定

ハンバーガーメニューの作成

一言で

  • /attend/[id].tsxなどで利用するハンバーガーをsrc/components/hamburgerMenu.tsxに作成してほしい

詳細

  • ヘッダーの右上にあるハンバーガーアイコンをクリックしたらフワっと画面全体を覆う感じで出てくる
  • 各項目に触れたらUI2枚目みたいなエフェクトを出してほしい
  • 載せてほしい項目は以下の通り(src/components/hamburgerButton.tsxで一回雛形を作ってから再利用する)
    • 「公欠の登録」
      • /absence/[id].tsxに遷移
      • アイコンはimport { FaBed } from "react-icons/fa";
    • 「登校目標時刻の変更」
      • /change-time/[id].tsxに遷移
      • アイコンはimport { FaRegCalendarAlt } from "react-icons/fa";
    • 「開発に参加しよう」
      • https://github.com/oXyut/check-attendance-dockerに遷移
      • アイコンはimport { FaGithub } from "react-icons/fa";
    • 「ホームに戻る」:できれば画面右下にフッターみたいな感じで配置
      • /user/[id].tsxに遷移
      • アイコンはimport { FaHome } from "react-icons/fa";

UIのデザイン例

hamburger-1
hamburger-2

`/src/app/absence/[id].tsx`の作成

一言で

  • 各ユーザーが公欠を登録・確認できるフォームを/src/app/absence/[id].tsxに作成してほしい

詳細

  • 日付選択はカレンダー
    • /src/components/Calender.tsxで別途作成するか、既存のライブラリを利用してください(後者推奨)
    • 複数選択できるようにしてください(同一の理由で一定期間休む際に全部いちいち登録したくない)
  • 公欠の日付と公欠理由は必須で、入力しないとdisabled
  • 予約一覧
    • 理由は途中で省略
    • 削除ボタンを押したら「本当に削除しますか?」をいうポップアップを出す
    • 日付が過ぎたら削除ボタンをチェックボックスに変え、行ごと薄くする

UIデザイン例

image

add-drumroll-component

概要

  • ドラムロールで時刻(hours, minutes)が入力可能なreact-componentを作成する

perse-datetime

一言で

  • datetime型は2000-01-01T10:30:00+09:00のような形式しか許さないようにzodでvalidation/perseしたい

詳細

  • check-attendance-docker/next_app/src/schema/index.tsにzodによるperseが登録されており、現在userSchemaがuser情報をpostする際のperseが登録されている。例えばこのperseのpromisedTime2000-01-01T10:30:00+09:00のような形式しか許さないようにしたい

備考

  • date型には様々な形式があるので特定の形式しか許さないようにしたい
  • +09:00の部分はタイムゾーンで、これをつけると日本時刻として了承される
  • この形式でpostしたらデータベースに正常に登録されるのは確認済み

`/api/attend`の変更

すみません、PMのissueの書き方とreviewが杜撰なせいで、/api/attendが想定と違うものになってしまったので修正をお願いしたいです。

POST

  • 現状、db中のattendanceにPOSTするとidとuserIdが等しいレコードが作成または更新されると思います。これだと、過去誰が何時に投稿したかの記録を貯めることができないので、逐一新しいidでエンティティを作成してください。蓄積された記録は、例えば、後のアップデートで統計要約を行い各ユーザーのページに表示する可能性があります。
  • 同じユーザーの同じ日のレコードがあるのにも関わらずPOSTが飛んできた場合は弾き、dbに登録させないでください。

GET

  • GETのresponseには{attendanceTime: string, isAttend: boolean}が入ると思いますが、attendanceTime08:30のような形式ではなくて、dbのレコードに登録されているそのままのDate型を返してください。これを表示する形式に変更などの処理はフロントエンド側でやります。
  • isAttendfalseのときのattendanceTime1990-01-01T00:00:00.000Zとしてください(nullとか入れるとtypeの分岐がめんどくさくなるのでダミーの日付を入れたいです)

absenceのDatePickerの修正

概要

DatePickerで日付を複数選択するときに、明日の日付を含めるとDatePicker以外の所をクリックしたときに明日の日付以外が消される

build後のprismaエラー

prisma:error
Invalid `prisma.user.findUnique()` invocation:


Inconsistent column data: Error creating UUID, invalid character: expected an optional prefix of `urn:uuid:` followed by [0-9a-fA-F-], found `m` at 3
 ⨯ PrismaClientKnownRequestError:
Invalid `prisma.user.findUnique()` invocation:


Inconsistent column data: Error creating UUID, invalid character: expected an optional prefix of `urn:uuid:` followed by [0-9a-fA-F-], found `m` at 3
    at si.handleRequestError (C:\Users\yutos\check-attendance-docker\next_app\node_modules\@prisma\client\runtime\library.js:125:6817)
    at si.handleAndLogRequestError (C:\Users\yutos\check-attendance-docker\next_app\node_modules\@prisma\client\runtime\library.js:125:6151)
    at si.request (C:\Users\yutos\check-attendance-docker\next_app\node_modules\@prisma\client\runtime\library.js:125:5859)
    at async l (C:\Users\yutos\check-attendance-docker\next_app\node_modules\@prisma\client\runtime\library.js:130:10025)
    at async d (C:\Users\yutos\check-attendance-docker\next_app\.next\server\app\api\user\route.js:1:604)
    at async C:\Users\yutos\check-attendance-docker\next_app\node_modules\next\dist\compiled\next-server\app-route.runtime.prod.js:6:41322 {
  code: 'P2023',
  clientVersion: '5.7.1',
  meta: {
    modelName: 'User',
    message: 'Error creating UUID, invalid character: expected an optional prefix of `urn:uuid:` followed by [0-9a-fA-F-], found `m` at 3'
  }
}

absenceのconfirmに枠つけてほしい

absenceで本当に削除しますか?の確認ボックスが半透明で出ているのが現状ですが、これ不透明で枠つけてほしいかもです

build時のエラー対処

出たエラー

node ➜ /workspace/next_app (main) $ yarn next build
yarn run v1.22.19
$ /workspace/next_app/node_modules/.bin/next build
 ⚠ You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env
   ▲ Next.js 14.0.3
   - Environments: .env

 ✓ Creating an optimized production build    
 ✓ Compiled successfully
 ✓ Linting and checking validity of types    
 ✓ Collecting page data    
   Generating static pages (6/14)  [=   ] 
 ⨯ TypeError: Cannot read properties of null (reading 'useContext')
    at y (/workspace/next_app/.next/server/chunks/879.js:1:21892)
    at d (/workspace/next_app/.next/server/chunks/879.js:1:12206)
 ⨯ TypeError: Cannot read properties of null (reading 'useContext')
    at y (/workspace/next_app/.next/server/chunks/879.js:1:21892)
    at d (/workspace/next_app/.next/server/chunks/879.js:1:12206)
 ⨯ TypeError: Cannot read properties of null (reading 'useContext')
    at y (/workspace/next_app/.next/server/chunks/879.js:1:21892)
    at d (/workspace/next_app/.next/server/chunks/879.js:1:12206)
TypeError: Cannot read properties of null (reading 'useContext')
    at t.useContext (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:12:106189)
    at y (/workspace/next_app/.next/server/chunks/879.js:1:21892)
    at d (/workspace/next_app/.next/server/chunks/879.js:1:12206)
    at as (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:6505)
    at /workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:11284
    at aw (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:13038)
    at e (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:46298)
    at ak (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:48276)
    at av (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:7923)
    at /workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:13014

Error occurred prerendering page "/admin". Read more: https://nextjs.org/docs/messages/prerender-error
TypeError: Cannot read properties of null (reading 'useContext')
    at t.useContext (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:12:106189)
    at y (/workspace/next_app/.next/server/chunks/879.js:1:21892)
    at d (/workspace/next_app/.next/server/chunks/879.js:1:12206)
    at as (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:6505)
    at /workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:11284
    at aw (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:13038)
    at e (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:46298)
    at ak (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:48276)
    at av (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:7923)
    at /workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:13014
TypeError: Cannot read properties of null (reading 'useContext')
    at t.useContext (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:12:106189)
    at y (/workspace/next_app/.next/server/chunks/879.js:1:21892)
    at d (/workspace/next_app/.next/server/chunks/879.js:1:12206)
    at as (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:6505)
    at /workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:11284
    at aw (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:13038)
    at e (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:46298)
    at ak (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:48276)
    at av (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:7923)
    at /workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:13014

Error occurred prerendering page "/test/drum-time-picker". Read more: https://nextjs.org/docs/messages/prerender-error
TypeError: Cannot read properties of null (reading 'useContext')
    at t.useContext (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:12:106189)
    at y (/workspace/next_app/.next/server/chunks/879.js:1:21892)
    at d (/workspace/next_app/.next/server/chunks/879.js:1:12206)
    at as (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:6505)
    at /workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:11284
    at aw (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:13038)
    at e (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:46298)
    at ak (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:48276)
    at av (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:7923)
   Generating static pages (8/14)  [==  ] 
TypeError: Cannot read properties of null (reading 'useContext')
    at t.useContext (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:12:106189)
    at y (/workspace/next_app/.next/server/chunks/879.js:1:21892)
    at d (/workspace/next_app/.next/server/chunks/879.js:1:12206)
    at as (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:6505)
    at /workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:11284
    at aw (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:13038)
    at e (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:46298)
    at ak (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:48276)
    at av (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:7923)
    at /workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:13014

Error occurred prerendering page "/test/button". Read more: https://nextjs.org/docs/messages/prerender-error
TypeError: Cannot read properties of null (reading 'useContext')
    at t.useContext (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:12:106189)
    at y (/workspace/next_app/.next/server/chunks/879.js:1:21892)
    at d (/workspace/next_app/.next/server/chunks/879.js:1:12206)
    at as (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:6505)
    at /workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:11284
    at aw (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:13038)
    at e (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:46298)
    at ak (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:48276)
    at av (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:7923)
   Generating static pages (9/14)  [=== ] 
 ⨯ TypeError: Cannot read properties of null (reading 'useContext')
    at y (/workspace/next_app/.next/server/chunks/879.js:1:21892)
    at d (/workspace/next_app/.next/server/chunks/879.js:1:12206)
TypeError: Cannot read properties of null (reading 'useContext')
    at t.useContext (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:12:106189)
    at y (/workspace/next_app/.next/server/chunks/879.js:1:21892)
    at d (/workspace/next_app/.next/server/chunks/879.js:1:12206)
    at as (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:6505)
    at /workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:11284
    at aw (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:13038)
    at e (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:46298)
    at ak (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:48276)
    at av (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:7923)
    at /workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:13014

Error occurred prerendering page "/". Read more: https://nextjs.org/docs/messages/prerender-error
TypeError: Cannot read properties of null (reading 'useContext')
    at t.useContext (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:12:106189)
    at y (/workspace/next_app/.next/server/chunks/879.js:1:21892)
    at d (/workspace/next_app/.next/server/chunks/879.js:1:12206)
    at as (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:6505)
    at /workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:11284
    at aw (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:13038)
    at e (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:46298)
    at ak (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:48276)
    at av (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:7923)
    at /workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:13014
 ⨯ TypeError: Cannot read properties of null (reading 'useContext')
    at y (/workspace/next_app/.next/server/chunks/879.js:1:21892)
    at d (/workspace/next_app/.next/server/chunks/879.js:1:12206)
TypeError: Cannot read properties of null (reading 'useContext')
    at t.useContext (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:12:106189)
    at y (/workspace/next_app/.next/server/chunks/879.js:1:21892)
    at d (/workspace/next_app/.next/server/chunks/879.js:1:12206)
    at as (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:6505)
    at /workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:11284
    at aw (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:13038)
    at e (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:46298)
    at ak (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:48276)
    at av (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:7923)
    at /workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:13014

Error occurred prerendering page "/_not-found". Read more: https://nextjs.org/docs/messages/prerender-error
TypeError: Cannot read properties of null (reading 'useContext')
    at t.useContext (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:12:106189)
    at y (/workspace/next_app/.next/server/chunks/879.js:1:21892)
    at d (/workspace/next_app/.next/server/chunks/879.js:1:12206)
    at as (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:6505)
    at /workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:11284
    at aw (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:13038)
    at e (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:46298)
    at ak (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:48276)
    at av (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:7923)
    at /workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:13014
 ⨯ TypeError: Cannot read properties of null (reading 'useContext')
    at y (/workspace/next_app/.next/server/chunks/879.js:1:21892)
    at d (/workspace/next_app/.next/server/chunks/879.js:1:12206)
TypeError: Cannot read properties of null (reading 'useContext')
    at t.useContext (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:12:106189)
    at y (/workspace/next_app/.next/server/chunks/879.js:1:21892)
    at d (/workspace/next_app/.next/server/chunks/879.js:1:12206)
    at as (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:6505)
    at /workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:11284
    at aw (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:13038)
    at e (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:46298)
    at ak (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:48276)
    at av (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:7923)
    at /workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:13014

Error occurred prerendering page "/test/hamburger-menu". Read more: https://nextjs.org/docs/messages/prerender-error
TypeError: Cannot read properties of null (reading 'useContext')
    at t.useContext (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:12:106189)
    at y (/workspace/next_app/.next/server/chunks/879.js:1:21892)
    at d (/workspace/next_app/.next/server/chunks/879.js:1:12206)
    at as (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:6505)
    at /workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:11284
    at aw (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:13038)
    at e (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:46298)
    at ak (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:48276)
    at av (/workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:7923)
    at /workspace/next_app/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js:35:13014
Error: <Html> should not be imported outside of pages/_document.
Read more: https://nextjs.org/docs/messages/no-document-import-in-page
    at eu (/workspace/next_app/node_modules/next/dist/compiled/next-server/pages.runtime.prod.js:16:5482)
    at y (/workspace/next_app/.next/server/chunks/687.js:6:1299)
    at renderWithHooks (/workspace/next_app/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5658:16)
    at renderIndeterminateComponent (/workspace/next_app/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5731:15)
    at renderElement (/workspace/next_app/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5946:7)
    at renderNodeDestructiveImpl (/workspace/next_app/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6104:11)
    at renderNodeDestructive (/workspace/next_app/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6076:14)
    at finishClassComponent (/workspace/next_app/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5688:3)
    at renderClassComponent (/workspace/next_app/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5696:3)
    at renderElement (/workspace/next_app/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5943:7)

Error occurred prerendering page "/404". Read more: https://nextjs.org/docs/messages/prerender-error
Error: <Html> should not be imported outside of pages/_document.
Read more: https://nextjs.org/docs/messages/no-document-import-in-page
    at eu (/workspace/next_app/node_modules/next/dist/compiled/next-server/pages.runtime.prod.js:16:5482)
    at y (/workspace/next_app/.next/server/chunks/687.js:6:1299)
    at renderWithHooks (/workspace/next_app/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5658:16)
    at renderIndeterminateComponent (/workspace/next_app/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5731:15)
    at renderElement (/workspace/next_app/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5946:7)
    at renderNodeDestructiveImpl (/workspace/next_app/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6104:11)
    at renderNodeDestructive (/workspace/next_app/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6076:14)
    at finishClassComponent (/workspace/next_app/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5688:3)
    at renderClassComponent (/workspace/next_app/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5696:3)
    at renderElement (/workspace/next_app/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5943:7)
Error: <Html> should not be imported outside of pages/_document.
Read more: https://nextjs.org/docs/messages/no-document-import-in-page
    at eu (/workspace/next_app/node_modules/next/dist/compiled/next-server/pages.runtime.prod.js:16:5482)
    at y (/workspace/next_app/.next/server/chunks/687.js:6:1299)
    at renderWithHooks (/workspace/next_app/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5658:16)
    at renderIndeterminateComponent (/workspace/next_app/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5731:15)
    at renderElement (/workspace/next_app/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5946:7)
    at renderNodeDestructiveImpl (/workspace/next_app/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6104:11)
    at renderNodeDestructive (/workspace/next_app/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6076:14)
    at finishClassComponent (/workspace/next_app/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5688:3)
    at renderClassComponent (/workspace/next_app/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5696:3)
    at renderElement (/workspace/next_app/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5943:7)

Error occurred prerendering page "/500". Read more: https://nextjs.org/docs/messages/prerender-error
Error: <Html> should not be imported outside of pages/_document.
Read more: https://nextjs.org/docs/messages/no-document-import-in-page
    at eu (/workspace/next_app/node_modules/next/dist/compiled/next-server/pages.runtime.prod.js:16:5482)
    at y (/workspace/next_app/.next/server/chunks/687.js:6:1299)
    at renderWithHooks (/workspace/next_app/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5658:16)
    at renderIndeterminateComponent (/workspace/next_app/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5731:15)
    at renderElement (/workspace/next_app/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5946:7)
    at renderNodeDestructiveImpl (/workspace/next_app/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6104:11)
    at renderNodeDestructive (/workspace/next_app/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6076:14)
    at finishClassComponent (/workspace/next_app/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5688:3)
    at renderClassComponent (/workspace/next_app/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5696:3)
 ✓ Generating static pages (14/14) 

> Export encountered errors on following paths:
        /_error: /404
        /_error: /500
        /_not-found
        /admin/page: /admin
        /page: /
        /test/button/page: /test/button
        /test/drum-time-picker/page: /test/drum-time-picker
        /test/hamburger-menu/page: /test/hamburger-menu
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

`/src/app/change-time/[id].tsx`の作成

一言で

  • 登校目標時間を変更できるようなフォームを/src/app/chage-time/[id].tsxに作成してほしい

詳細

  • 日付選択は/src/components/DrumTimePicker.tsxを使用してください
  • 新しい目標時刻は必須で、入力しない限りはdisabled

UIデザイン例

スクリーンショット 2023-12-26 15 42 07

`/src/app/page.tsx`の作成

一言で

  • 各ユーザの登校ページに遷移するwelcomeページを作成する

詳細

  • api/users/route.tsxにGETしてとってきたユーザー一覧をマルチセレクトとしてユーザー名を選択させる
    -- マルチセレクトの初期値は空で、このままだと決定ボタンを押せないようにしてください
  • 決定ボタンを押すとユーザーに対応したページsrc/app/attend/[id].tsxにページ遷移(ルーティング)させる
    • src/app/attend/[id].tsxは適当に、受け取ったidを表示させるだけのページを作っておいてください
    • このようなダイナミックルーティングはこことかを参考にしてください

UI

image

build時のエラー(absence)

yarn next buildを実行したところ、以下のようなエラーが出た

./src/app/absence/[userId]/page.tsx:72:53
Type error: This expression is not callable.
  Each member of the union type '{ <S extends string>(predicate: (value: string, index: number, array: string[]) => value is S, thisArg?: any): this is S[]; (predicate: (value: string, index: number, array: string[]) => unknown, thisArg?: any): boolean; } | { ...; } | { ...; } | { ...; }' has signatures, but none of those signatures are compatible with each other.

  70 |     setIsButtonClicked(true);
  71 |
> 72 |     if (!Array.isArray(absenceDate) || !absenceDate.every((date) => date instanceof DateObject)) {
     |                                                     ^
  73 |       console.error("Invalid date format");
  74 |       return;
  75 |     }
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.