mirror of
https://github.com/logancyang/obsidian-copilot.git
synced 2026-07-22 07:50:24 +00:00
* chore(eslint): enable no-explicit-any; fix ~395 violations Switches @typescript-eslint/no-explicit-any from "off" to "error" and replaces explicit `any` with proper types or `unknown` + narrowing across ~100 source files and 15 test files. Eleven eslint-disable comments remain: one for a BaseLanguageModel prototype patch and ten for Orama<any> API surfaces where typed alternatives poison Orama's internal inference to `never`. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(scripts): cast chainContext to ChainManager in printPromptDebugEntry The earlier `as any` → `as unknown` rewrite left buildAgentPromptDebugReport's chainManager argument typed as `unknown`, which CI's `tsc -noEmit` (without `--skipLibCheck`) flagged. Restore the cast through the real ChainManager type. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * chore(eslint): fix remaining no-explicit-any and unnecessary-type-assertion errors Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * chore(eslint): drop redundant no-explicit-any rule Already set to "error" by typescript-eslint/recommendedTypeChecked via obsidianmd's recommended config. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
37 lines
1.2 KiB
TypeScript
37 lines
1.2 KiB
TypeScript
import React from "react";
|
|
import { $isURLPillNode, URLPillNode } from "../pills/URLPillNode";
|
|
import { GenericPillSyncPlugin, PillSyncConfig } from "./GenericPillSyncPlugin";
|
|
import type { LexicalNode } from "lexical";
|
|
|
|
/**
|
|
* Props for the URLPillSyncPlugin component
|
|
*/
|
|
interface URLPillSyncPluginProps {
|
|
/** Callback triggered when the list of URL pills changes */
|
|
onURLsChange?: (urls: string[]) => void;
|
|
/** Callback triggered when URL pills are removed from the editor */
|
|
onURLsRemoved?: (removedUrls: string[]) => void;
|
|
}
|
|
|
|
/**
|
|
* Configuration for URL pill synchronization
|
|
*/
|
|
const urlPillConfig: PillSyncConfig<string> = {
|
|
isPillNode: $isURLPillNode,
|
|
extractData: (node: LexicalNode) => (node as URLPillNode).getURL(),
|
|
};
|
|
|
|
/**
|
|
* Lexical plugin that monitors URL pill nodes in the editor and syncs
|
|
* their state with parent components. Tracks additions, removals, and
|
|
* changes to URL pills to keep external state in sync with editor content.
|
|
*/
|
|
export function URLPillSyncPlugin({ onURLsChange, onURLsRemoved }: URLPillSyncPluginProps) {
|
|
return (
|
|
<GenericPillSyncPlugin
|
|
config={urlPillConfig}
|
|
onChange={onURLsChange}
|
|
onRemoved={onURLsRemoved}
|
|
/>
|
|
);
|
|
}
|