from Kozaneba開発日記2021-09-01 2021-09-02Kozaneba開発日記
リリースノート
リリースノート
場の削除機能をとりあえず開発者メニューに追加した
リリースノート
リリースノート
custom.urlが空文字列でもundefinedでもない場合:visitが追加されるグループにminSizeをつけたけど「ピッチリしてて選択しにくい」ケースが出る
リリースノート
custom.urlを持ったこざねが作られる「Baの一部を別のBaにする」ができる
他のものに使っていく
選択範囲が空の場合、選択モードから抜ける
名前のないグループをコピーペーストした後中のグループをungroupするとクラッシュする
リリースノート
ローカルバックアップが必要だな
リリースノート
うーん… ts
const p = get_group(getGlobal(), parent);
if (p.items.length === 0 && p.text === "") {
updateGlobal((g) => {
remove_item(g, parent);
});
} else {
normalize_group_position(parent);
}
部品の構造が3通りある…
うーん、draftを受け取るの第二引数にして「省略されたら自分で作る」にしようか? ts
export const normalize_group_position = (gid: ItemId) => {
updateGlobal((g) => {
...
});
};
これを
こうする ts
export const normalize_group_position = (gid: ItemId, draft?: State) => {
const body = (g: State) => {
...
};
if (draft === undefined) {
updateGlobal(body);
} else {
body(draft);
}
};
さらにこうか ts
export const normalize_group_position = (gid: ItemId, draft?: State) => {
optional_draft(draft, (g) => {
...
});
};
const optional_draft = (
draft: State | undefined,
f: (g: State) => void
): void => {
if (draft === undefined) {
updateGlobal(f);
} else {
f(draft);
}
};
これでoptional_draft部分は共通化されて、既存のdraftを受け取らないユーティリティの冒頭2行を書き換えるだけで良くなる
https://twitter.com/nishio/status/1433356592620081155?s=20
あ、そうか、なるほど
next: Kozaneba開発日記2021-09-03