Closed kuniyuki-f closed 1 year ago
The latest updates on your projects. Learn more about Vercel for Git ↗︎
Name | Status | Preview | Comments | Updated (UTC) |
---|---|---|---|---|
timelogger-web | ✅ Ready (Inspect) | Visit Preview | 💬 Add feedback | Aug 19, 2023 3:43am |
@keitakn お疲れ様です。 すみません、実装について悩んでおり、しばらく手が止まってしまっているので相談させてください。
MeasuringTaskItem
コンポーネントの終了ボタンがクリックされたらcompleteTask
が実行されるようにしたい主に以下の通りです
appToken
の扱いについて今のapi/client/fetch/task.ts
の作りでは、completeTask
などの関数はappToken
を引数に取る形になっていると思います。
type CompleteTaskDto = {
taskId: number;
appToken: string;
};
export type CompleteTask = (dto: CompleteTaskDto) => Promise<Task>;
このcompleteTask
はブラウザから API を叩く認識でいて、そうなると #60 のように「Pages
コンポーネントのgetServerSideProps
で取得してPage Props
に渡す」という実装はできないと考えています。
なのでappToken
をブラウザに渡して使うしかないのかな?と思うのですが、getServerSideProps
でappToken
をフロントのコンポーネントに渡してしまって問題ありませんか?
問題なければ、appToken
, completeTask
, taskId
など必要な Props を MeasuringTaskItem
に追加して、実装を進めようと考えています。
もし、もっと良い方法があればコメント頂けますと幸いです🙇♂ どうぞよろしくお願いします!
@c501306014
進めて頂きありがとうございます!
なのでappTokenをブラウザに渡して使うしかないのかな?と思うのですが、getServerSidePropsでappTokenをフロントのコンポーネントに渡してしまって問題ありませんか?
問題ないと言えば問題ないのですが、Next.jsのAPI Routeを経由するようにしてAPI Route内でSessionを取得、その中から appToken
を取り出す事は可能でしょうか:eyes:?
これが可能であればAPI Routeを経由するようにするで問題ないと思いました!
@keitakn
アドバイスありがとうございます!
API Routes 内で Session から appToken
を取得する方法がありました。
https://next-auth.js.org/configuration/nextjs#in-api-routes
コードは公式通りなので割愛しますが、 src/pages/api/hello.ts
で実践してみたところ、たしかに appToken
を取得できました。
API Routes関連の実装は本 PR およびイシューとは別にした方が良いと考えたので、新たにイシュー #101 を立てました。 本 PR は一旦保留し、先に #101 を対応してしまいたいと思います。
引き続きよろしくお願いします🙇♂
@c501306014 issue作成ありがとうございます👍
お手数ですがよろしくお願いします🙏
issueURL
57
この PR で対応する範囲 / この PR で対応しない範囲
Storybook の URL、 スクリーンショット
ドラフトのため未掲載
変更点概要
ドラフトのため未掲載
レビュアーに重点的にチェックして欲しい点
ドラフトのため未掲載
補足情報
実装について迷っているため、ドラフトでPRを作成しております。