useBubbles()の設計メモ
from takker99/ScrapBubble
useBubbles()
表示すべきtext bubblesとcard bubblesのデータ、表示切り替え函数を提供するhook
bubbles
表示すべき全階層のbubbles
非同期で取得しているデータを受け取る度に更新する
取得できたデータから順次UIに渡すことが出来る
code:Bubble.ts
interface Bubble {
text bubbleに表示するデータ
事前に決められたproject順で並んでいる
今のところはpages[0]しか表示しない
いずれ他のページも切り替えて表示できるようにする
code:Bubble.ts
pages: {
project: string;
title: string;
lines: Line[];
}[];
card bubblesに表示するデータ
事前に決められたproject順で並んでいる
同じprojectのcardsの並び順は特に決めていない
APIに入っていた並び順をそのまま使っている
いずれ並び順を変えられるようにしてもいいかもしれない
code:Bubble.ts
cards: (RelatedPage & {project: string})[];
/** bubblesを表示するための位置情報 */
position: Position;
/** (optional) スクロール先 */
scrollTo?: ScrollTo;
/** bubbleの発生源 */
type: LinkType;
}
show()
指定した階層で指定したリンクのbubblesを表示する
hide()
指定した階層とそれ以降のbubblesを消す
個別のbubbleに子bubblesの管理を任せるのではなく、このhookで全てのbubblesを管理している
個別に管理するとDOMが入れ子になり、描画処理に問題が発生する
具体的には子bubbleが親bubbleからはみ出させ描画させるのが困難になるなど
詳しくは/programming-notesにある旧実装ページにいろいろ書かれている
2022-01-15
17:10:12 Cache (DOM)を使ったfetchに置き換える作業だけした
試しにやってみたつもりだったが、意外とすんなりできてしまった
動作確認もした
折角なので先にこれだけmergeする
✅useBubbles()用データをCacheから読み込む
#2021-01-15
#2022-01-07
#2021-12-29 04:24:33
#2021-12-14 06:13:08