Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion components/rule-settings/rule-list.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ function itemClass({ index, count, isDragging, dropSlot }: ItemState): string {
* 先頭・末尾に着いてそのボタンが無効になったときは、もう一方のボタンにフォーカスを移す
*/
function useStepWithFocus(
listRef: RefObject<HTMLOListElement>,
listRef: RefObject<HTMLOListElement | null>,
ids: readonly string[],
onMove: (id: string, to: number) => void,
): (id: string, direction: MoveDirection) => void {
Expand Down
2 changes: 1 addition & 1 deletion components/rule-settings/use-drag-reorder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ export interface DragReorder {
* @remarks 一覧(listRef)の直下の要素をルールの並びとみなし、ポインターの位置から差し込み先を決める。ルールの間の隙間でもドロップできるよう、dragover・drop は各ルールではなく一覧で受ける
*/
export function useDragReorder(
listRef: RefObject<HTMLOListElement>,
listRef: RefObject<HTMLOListElement | null>,
ids: readonly string[],
onMove: (id: string, to: number) => void,
): DragReorder {
Expand Down
10 changes: 5 additions & 5 deletions components/rule-settings/use-rules.test.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { MutableRef } from "preact/hooks";
import type { RefObject } from "preact";
import { describe, expect, it, onTestFinished, vi } from "vitest";

import type { ParsedRules } from "../../utils/rules/parse";
Expand All @@ -17,8 +17,8 @@ function loaded(rules: readonly Rule[]): RulesLoad {
/** subscribeRules を始め、渡された読み込みの状態を順に入れた配列と、もう一度読み込む関数を返す。購読はテストの終わりにやめる */
function subscribe(store: ReturnType<typeof createRulesStore>): { loads: RulesLoad[]; retry: () => Promise<void> } {
const loads: RulesLoad[] = [];
const latest: MutableRef<readonly Rule[] | null> = { current: null };
const pendingWrites: MutableRef<number> = { current: 0 };
const latest: RefObject<readonly Rule[] | null> = { current: null };
const pendingWrites: RefObject<number> = { current: 0 };
const subscription = subscribeRules(store, {
latest,
pendingWrites,
Expand Down Expand Up @@ -107,8 +107,8 @@ describe("unsubscribe 後の読み込み・変更通知(Issue #74 のフォロ
const reading = Promise.withResolvers<ParsedRules>();
vi.spyOn(store, "read").mockReturnValueOnce(reading.promise);
const loads: RulesLoad[] = [];
const latest: MutableRef<readonly Rule[] | null> = { current: null };
const pendingWrites: MutableRef<number> = { current: 0 };
const latest: RefObject<readonly Rule[] | null> = { current: null };
const pendingWrites: RefObject<number> = { current: 0 };
const subscription = subscribeRules(store, {
latest,
pendingWrites,
Expand Down
8 changes: 4 additions & 4 deletions components/rule-settings/use-rules.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { MutableRef } from "preact/hooks";
import type { RefObject } from "preact";
import { useCallback, useEffect, useMemo, useRef, useState } from "preact/hooks";

import type { RuleProblem } from "../../utils/rules/match";
Expand Down Expand Up @@ -92,9 +92,9 @@ export function useRules(store: RulesStore): RulesState {
/** subscribeRules が一覧の読み込み・変更を伝える先 */
export interface RulesSubscription {
/** 最新の一覧。読み込み・変更の通知で書き換える */
latest: MutableRef<readonly Rule[] | null>;
latest: RefObject<readonly Rule[] | null>;
/** 保存中の書き込みの数。0 でないあいだの通知は無視する */
pendingWrites: MutableRef<number>;
pendingWrites: RefObject<number>;
/** 読み込んだ・変わった一覧を受け取る */
onChange: (parsed: ParsedRules) => void;
/** 読み込みが失敗したことを受け取る。latest がまだ無いときだけ呼ぶ */
Expand Down Expand Up @@ -158,7 +158,7 @@ export function subscribeRules(

interface SaveOptions {
/** 保存中の書き込みの数。保存が終わるまで増やしておく */
pendingWrites: MutableRef<number>;
pendingWrites: RefObject<number>;
/** 保存できたときに、pendingWrites を戻した後で呼ぶ */
onSaved: () => void;
}
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
},
"dependencies": {
"@logtape/logtape": "2.4.2",
"preact": "10.29.8",
"preact": "11.0.2",
"valibot": "1.5.0"
},
"devDependencies": {
Expand Down
12 changes: 6 additions & 6 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading