@tooee/search 0.2.4 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,10 +4,11 @@ import { useCommand, useMode, useSetMode } from "@tooee/commands";
4
4
  import { createNavSearchStore, selectCurrentMatchIndex, selectMatches, selectSearchActive, selectSearchQuery, } from "./nav-search-store.js";
5
5
  const CURSOR_MODES = ["cursor"];
6
6
  const ALL_MODES = ["cursor", "select", "insert"];
7
- export function useNavSearchStore(options) {
7
+ export const useNavSearchStore = function useNavSearchStore(options) {
8
8
  const depsRef = useRef({ isSelectable: options.isSelectable ?? (() => true) });
9
9
  depsRef.current.isSelectable = options.isSelectable ?? (() => true);
10
- const [store] = useState(() => createNavSearchStore({ keys: options.keys, deps: depsRef.current }));
10
+ const [store, setStore] = useState(() => createNavSearchStore({ deps: depsRef.current, keys: options.keys }));
11
+ void setStore;
11
12
  useEffect(() => {
12
13
  const currentKeys = store.getSnapshot().context.rowKeys;
13
14
  const keysChanged = currentKeys.length !== options.keys.length ||
@@ -20,8 +21,8 @@ export function useNavSearchStore(options) {
20
21
  }
21
22
  }, [store, options.keys, options.preserveCursorByKey]);
22
23
  return store;
23
- }
24
- export function useSearchBindings(store, { match, onJump, enabled = true, deps = [], }) {
24
+ };
25
+ export const useSearchBindings = function useSearchBindings(store, { match, onJump, enabled = true, deps = [], }) {
25
26
  const mode = useMode();
26
27
  const setMode = useSetMode();
27
28
  const matchRef = useRef(match);
@@ -30,79 +31,98 @@ export function useSearchBindings(store, { match, onJump, enabled = true, deps =
30
31
  onJumpRef.current = onJump;
31
32
  useEffect(() => {
32
33
  const subscription = store.on("jumped", ({ index }) => onJumpRef.current?.(index));
33
- return () => subscription.unsubscribe();
34
+ return () => {
35
+ subscription.unsubscribe();
36
+ };
34
37
  }, [store]);
35
38
  useEffect(() => {
36
- const subscription = store.on("restoreMode", ({ mode: restored }) => setMode(restored));
37
- return () => subscription.unsubscribe();
39
+ const subscription = store.on("restoreMode", ({ mode: restored }) => {
40
+ setMode(restored);
41
+ });
42
+ return () => {
43
+ subscription.unsubscribe();
44
+ };
38
45
  }, [store, setMode]);
39
46
  const searchQuery = useSelector(store, (snapshot) => selectSearchQuery(snapshot.context));
40
47
  const searchActive = useSelector(store, (snapshot) => selectSearchActive(snapshot.context));
41
- const matchingLines = useSelector(store, (snapshot) => selectMatches(snapshot.context));
48
+ const selectedMatches = useSelector(store, (snapshot) => selectMatches(snapshot.context));
49
+ // Deferred(lint-sweep): redesign the public selector result as readonly (separate stream)
50
+ // oxlint-disable-next-line typescript/no-unsafe-type-assertion -- preserve the existing mutable public SearchState type
51
+ const matchingLines = selectedMatches;
42
52
  const currentMatchIndex = useSelector(store, (snapshot) => selectCurrentMatchIndex(snapshot.context));
43
53
  const updateSearchQuery = useCallback((query) => {
44
- store.trigger.searchChanged({ query, matches: query ? matchRef.current(query) : [] });
54
+ store.trigger.searchChanged({ matches: query ? matchRef.current(query) : [], query });
45
55
  }, [store]);
46
56
  // Re-match a committed query once when the caller-declared content changes.
47
57
  const depsRef = useRef(deps);
48
58
  useEffect(() => {
49
59
  if (depsRef.current.every((value, index) => Object.is(value, deps[index])) &&
50
- depsRef.current.length === deps.length)
60
+ depsRef.current.length === deps.length) {
51
61
  return;
62
+ }
52
63
  depsRef.current = deps;
53
64
  const query = selectSearchQuery(store.getSnapshot().context);
54
- if (query)
55
- store.trigger.searchChanged({ query, matches: matchRef.current(query) });
65
+ if (query) {
66
+ store.trigger.searchChanged({ matches: matchRef.current(query), query });
67
+ }
56
68
  }, [deps, store]);
57
69
  useCommand({
58
- id: "cursor-search-start",
59
- title: "Search",
60
- hotkey: "/",
61
- modes: CURSOR_MODES,
62
70
  enabled,
63
71
  handler: () => {
64
72
  store.trigger.searchStarted({ mode });
65
73
  setMode("insert");
66
74
  },
75
+ hotkey: "/",
76
+ id: "cursor-search-start",
77
+ modes: CURSOR_MODES,
78
+ title: "Search",
67
79
  });
68
80
  useCommand({
69
- id: "cursor-search-next",
70
- title: "Next match",
81
+ enabled,
82
+ handler: () => {
83
+ store.trigger.searchNext({});
84
+ },
71
85
  hotkey: "n",
86
+ id: "cursor-search-next",
72
87
  modes: CURSOR_MODES,
73
- enabled,
88
+ title: "Next match",
74
89
  when: () => !selectSearchActive(store.getSnapshot().context),
75
- handler: () => store.trigger.searchNext({}),
76
90
  });
77
91
  useCommand({
78
- id: "cursor-search-prev",
79
- title: "Previous match",
92
+ enabled,
93
+ handler: () => {
94
+ store.trigger.searchPrevious({});
95
+ },
80
96
  hotkey: "shift+n",
97
+ id: "cursor-search-prev",
81
98
  modes: CURSOR_MODES,
82
- enabled,
99
+ title: "Previous match",
83
100
  when: () => !selectSearchActive(store.getSnapshot().context),
84
- handler: () => store.trigger.searchPrevious({}),
85
101
  });
86
102
  useCommand({
87
- id: "search-cancel",
88
- title: "Cancel search",
103
+ enabled,
104
+ handler: () => {
105
+ store.trigger.searchCancelled({});
106
+ },
89
107
  hotkey: "escape",
108
+ id: "search-cancel",
90
109
  modes: ALL_MODES,
91
- enabled,
110
+ title: "Cancel search",
92
111
  when: () => selectSearchActive(store.getSnapshot().context),
93
- handler: () => store.trigger.searchCancelled({}),
94
112
  });
95
113
  return {
96
- searchQuery,
114
+ currentMatchIndex,
115
+ matchingLines,
97
116
  searchActive,
117
+ searchQuery,
98
118
  setSearchQuery: updateSearchQuery,
99
- matchingLines,
100
- currentMatchIndex,
101
- submitSearch: () => store.trigger.searchSubmitted({}),
119
+ submitSearch: () => {
120
+ store.trigger.searchSubmitted({});
121
+ },
102
122
  };
103
- }
104
- export function useSearch(options) {
123
+ };
124
+ export const useSearch = function useSearch(options) {
105
125
  const store = useNavSearchStore({ keys: [] });
106
126
  return useSearchBindings(store, options);
107
- }
127
+ };
108
128
  //# sourceMappingURL=search-hook.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"search-hook.js","sourceRoot":"","sources":["../src/search-hook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search-hook.js","sourceRoot":"","sources":["../src/search-hook.ts"],"names":[],"mappings":"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"}
package/dist/search.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare function findMatchingLines(text: string, query: string): number[];
1
+ export declare const findMatchingLines: (text: string, query: string) => number[];
2
2
  //# sourceMappingURL=search.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"AAAA,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAiBvE"}
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,GAA8B,MAAM,MAAM,EAAE,OAAO,MAAM,KAAG,MAAM,EAmB/F,CAAC"}
package/dist/search.js CHANGED
@@ -1,20 +1,21 @@
1
- export function findMatchingLines(text, query) {
2
- if (!query)
1
+ export const findMatchingLines = function findMatchingLines(text, query) {
2
+ if (!query) {
3
3
  return [];
4
+ }
4
5
  const lowerQuery = query.toLowerCase();
5
6
  const results = [];
6
7
  let lineStart = 0;
7
8
  let lineNum = 0;
8
- for (let i = 0; i <= text.length; i++) {
9
+ for (let i = 0; i <= text.length; i += 1) {
9
10
  if (i === text.length || text[i] === "\n") {
10
11
  const line = text.slice(lineStart, i).toLowerCase();
11
12
  if (line.includes(lowerQuery)) {
12
13
  results.push(lineNum);
13
14
  }
14
15
  lineStart = i + 1;
15
- lineNum++;
16
+ lineNum += 1;
16
17
  }
17
18
  }
18
19
  return results;
19
- }
20
+ };
20
21
  //# sourceMappingURL=search.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,KAAa;IAC3D,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAA;IACrB,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAA;IACtC,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,IAAI,SAAS,GAAG,CAAC,CAAA;IACjB,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;YACnD,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACvB,CAAC;YACD,SAAS,GAAG,CAAC,GAAG,CAAC,CAAA;YACjB,OAAO,EAAE,CAAA;QACX,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC"}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,iBAAiB,CAAC,IAAY,EAAE,KAAa;IACrF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACvC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACpD,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;YACD,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC;YAClB,OAAO,IAAI,CAAC,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tooee/search",
3
- "version": "0.2.4",
3
+ "version": "0.3.0",
4
4
  "description": "Search hook, utilities, and SearchBar component for Tooee",
5
5
  "keywords": [
6
6
  "cli",
@@ -35,8 +35,8 @@
35
35
  "typecheck": "tsc --noEmit"
36
36
  },
37
37
  "dependencies": {
38
- "@tooee/commands": "0.2.4",
39
- "@tooee/themes": "0.2.4",
38
+ "@tooee/commands": "0.3.0",
39
+ "@tooee/themes": "0.3.0",
40
40
  "@xstate/store": "^4",
41
41
  "@xstate/store-react": "^2"
42
42
  },
package/src/index.ts CHANGED
@@ -1,12 +1,12 @@
1
- export { useSearch } from "./search-hook.js"
2
- export { useNavSearchStore, useSearchBindings } from "./search-hook.js"
3
- export { createNavSearchStore } from "./nav-search-store.js"
1
+ export { useSearch } from "./search-hook.js";
2
+ export { useNavSearchStore, useSearchBindings } from "./search-hook.js";
3
+ export { createNavSearchStore } from "./nav-search-store.js";
4
4
  export type {
5
5
  NavSearchStore,
6
6
  NavSearchContext,
7
7
  NavSearchEvents,
8
8
  RowKey,
9
- } from "./nav-search-store.js"
9
+ } from "./nav-search-store.js";
10
10
  export {
11
11
  selectCursor,
12
12
  selectRowKeys,
@@ -19,8 +19,8 @@ export {
19
19
  selectCurrentMatchIndex,
20
20
  deriveSelection,
21
21
  resolveIndex,
22
- } from "./nav-search-store.js"
23
- export type { UseSearchOptions, SearchState } from "./search-hook.js"
24
- export { findMatchingLines } from "./search.js"
25
- export { SearchBar } from "./SearchBar.js"
26
- export type { SearchBarProps } from "./SearchBar.js"
22
+ } from "./nav-search-store.js";
23
+ export type { UseSearchOptions, SearchState } from "./search-hook.js";
24
+ export { findMatchingLines } from "./search.js";
25
+ export { SearchBar } from "./search-bar.js";
26
+ export type { SearchBarProps } from "./search-bar.js";