Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
react-callを使ってダイヤログをいろんなとこで再利用しよう!
Search
shinaps
September 07, 2025
Technology
2
660
react-callを使ってダイヤログをいろんなとこで再利用しよう!
https://ui-devs.connpass.com/event/364448/
shinaps
September 07, 2025
Tweet
Share
More Decks by shinaps
See All by shinaps
サラリーマンの小遣いで作るtoCサービス - Cloudflare Workersでスケールする開発戦略
shinaps
2
570
CloudflareとHonoを使って飲食店のレビューができるLINEアプリを作った
shinaps
3
1.4k
Other Decks in Technology
See All in Technology
トラブルの大半は「言ってない」x「言ってない」じゃねーか!!
ichimichi
0
190
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.4k
AI活用を"目的"にしたら、データの本質が見えてきた - Snowflake Intelligence実験記 / chasing-ai-finding-data
pei0804
0
790
OCI技術資料 : 外部接続 VPN接続 詳細
ocise
1
10k
LINEアプリ開発のための Claude Code活用基盤の構築
lycorptech_jp
PRO
1
1.1k
Windows ネットワークを再確認する
murachiakira
PRO
0
160
Eight Engineering Unit 紹介資料
sansan33
PRO
1
6.8k
マイグレーションガイドに書いてないRiverpod 3移行話
taiju59
0
330
AI が Approve する開発フロー / How AI Reviewers Accelerate Our Development
zaimy
1
220
Vertex AI Agent Engine で学ぶ「記憶」の設計
tkikuchi
0
110
dbt meetup #19 『dbtを『なんとなく動かす』を卒業します』
tiltmax3
0
130
器用貧乏が強みになるまで ~「なんでもやる」が導いたエンジニアとしての現在地~
kakehashi
PRO
5
620
Featured
See All Featured
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.1k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
300
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
140
Building AI with AI
inesmontani
PRO
1
750
How to train your dragon (web standard)
notwaldorf
97
6.5k
Prompt Engineering for Job Search
mfonobong
0
180
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.7k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.8k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
190
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
270
Transcript
react-callを使ってダイヤログを いろんなとこで再利用しよう! 2025/09/08 Web UI 実装勉強会 #1 @siipdog @shinaps 1
/ 23
react-callとは? window.confirm()のようにコンポーネントを呼び出し、ユーザーの応答を受け取ることができる 2 / 23 shinaps
使い方 コンポーネントの作成 createCallable()という関数を使用して 呼び出し可能なコンポーネントを定義する 3 / 23 shinaps
使い方 コンポーネントの作成 createCallable()という関数を使用して 呼び出し可能なコンポーネントを定義する propsでダイヤログのUIを制御 4 / 23 shinaps
使い方 コンポーネントの作成 今回はユーザーからの入力を使用しないので Responseの方の型は void にしている createCallable()という関数を使用して 呼び出し可能なコンポーネントを定義する export function
createCallable ( UserComponent: UserComponent<Props, Response, RootProps>, unmountingDelay?: number, ): Callable<Props, Response, RootProps> <Props = void, Response = void, RootProps = {}> 5 / 23 shinaps
使い方 コンポーネントの作成 call.end()を実行すると コンポーネント呼び出しが終了する createCallable()という関数を使用して 呼び出し可能なコンポーネントを定義する 6 / 23 shinaps
使い方 コンポーネントの配置 ConfirmDialog.Rootをダイヤログを 埋め込みたい位置に配置 7 / 23 shinaps
使い方 コンポーネントの配置 ConfirmDialog.Rootをダイヤログを 埋め込みたい位置に配置 8 / 23 shinaps
使用例:ダイヤログの再利用 9 / 23 shinaps
使用例:ダイヤログの再利用 10 / 23 shinaps
使用例:ダイヤログの再利用 11 / 23 shinaps
使用例:ダイヤログの再利用 12 / 23 shinaps
使用例:ダイヤログの再利用 13 / 23 shinaps
応用編? リピめしでの活用事例 「リピあり」と「リピなし」の2択で飲食店の 口コミが投稿できるサービスを開発してます 14 / 23 shinaps
応用編?:リピめしでの活用事例 mutationのhookで使用する useMutationを使用しているアプリケーションでは mutationの中からConfirmDialog.callを使用す ることで、ユーザーに確認が必要なアクションに対し てのダイヤログ表示を管理しやすくなります 15 / 23 shinaps
応用編?:リピめしでの活用事例 mutationのhookで使用する useMutationを使用しているアプリケーションでは mutationの中からConfirmDialog.callを使用す ることで、ユーザーに確認が必要なアクションに対し てのダイヤログ表示を管理しやすくなります mutationのhookの中でDialogを呼び出すようにすることで コンポーネント側の実装をシンプルにできる 16 /
23 shinaps
応用編?:リピめしでの活用事例 レビュー用モーダルを表示する 店舗詳細や店舗検索など、いろいろな場所からレビュー作成 を開始できるように、レビュー作成用モーダルをcallable にしています レビュー作成用モーダル 17 / 23 shinaps
応用編?:リピめしでの活用事例 - レビュー用モーダルを表示する 18 / 23 shinaps
応用編?:リピめしでの活用事例 - レビュー用モーダルを表示する 19 / 23 shinaps
レビュー作成用のモーダルを callableとして登録 応用編?:リピめしでの活用事例 - レビュー用モーダルを表示する 20 / 23 shinaps
応用編?:リピめしでの活用事例 - レビュー用モーダルを表示する 21 / 23 shinaps
「レビューを初期化してレビュー用のモーダルを開くボタン」として再利用できる 応用編?:リピめしでの活用事例 - レビュー用モーダルを表示する 22 / 23 shinaps
ありがとうございました 23 / 23