MCPcopy
hub / github.com/codedogQBY/ReadAny / toLyricItem

Function toLyricItem

packages/app-expo/src/components/reader/TTSPage.tsx:167–183  ·  view source on GitHub ↗
(
      prefix: "prev" | "curr",
      segment: { text: string; cfi?: string | null },
      index: number,
    )

Source from the content-addressed store, hash-verified

165 const lyricSegments = useMemo(() => {
166 const keyCounts = new Map<string, number>();
167 const toLyricItem = (
168 prefix: "prev" | "curr",
169 segment: { text: string; cfi?: string | null },
170 index: number,
171 ) => {
172 const fallbackKey = segment.text.trim().slice(0, 32) || `line-${index}`;
173 const baseKey = segment.cfi
174 ? `${prefix}:${segment.cfi}`
175 : `${prefix}:${index}:${fallbackKey}`;
176 const occurrence = keyCounts.get(baseKey) ?? 0;
177 keyCounts.set(baseKey, occurrence + 1);
178 return {
179 id: `${baseKey}:${occurrence}`,
180 text: segment.text,
181 cfi: segment.cfi ?? null,
182 };
183 };
184
185 const prev = (prevNarrationSegments ?? [])
186 .filter((segment) => segment.text.trim().length > 0)

Callers 1

TTSPageFunction · 0.70

Calls 2

sliceMethod · 0.80
getMethod · 0.65

Tested by

no test coverage detected