Skip to content

Commit a9fceda

Browse files
refine types for browser event handler
Signed-off-by: eternal-flame-AD <yume@yumechi.jp>
1 parent 8bda0b0 commit a9fceda

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

js/igv.d.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -732,19 +732,19 @@ interface CreateOptExtras {
732732
export namespace BrowserEvents {
733733
export type EventType = "trackremoved" | "trackdrag" | "trackdragend" | "locuschange" | "trackclick" | "trackorderchanged";
734734

735-
export type EventPayload<T extends EventType> =
736-
T extends "trackremoved" ? Tracks.Track[] :
737-
T extends "locusChange" ? {
735+
export type EventHandler<T extends EventType> =
736+
T extends "trackremoved" ? (tracks: Tracks.Track[]) => EventReturn<T> :
737+
T extends "locusChange" ? (loci: {
738738
chr: string;
739739
start: number;
740740
end: number;
741741
getLocusString: () => string;
742-
}[] :
743-
T extends "trackclick" ? {
744-
name: string;
745-
value: string;
746-
} :
747-
T extends "trackorderchanged" ? string[] :
742+
}[]) => EventReturn<T> :
743+
T extends "trackclick" ? (
744+
track: Tracks.Track,
745+
popoverData?: Record<string, string>,
746+
) => EventReturn<T> :
747+
T extends "trackorderchanged" ? (trackNames: string[]) => EventReturn<T> :
748748
never;
749749

750750
export type EventReturn<T extends EventType> =
@@ -816,7 +816,7 @@ declare class _Browser {
816816

817817
sessionURL(): string;
818818

819-
on<T extends BrowserEvents.EventType>(event: T, handler: (payload: BrowserEvents.EventPayload<T>) => BrowserEvents.EventReturn<T>): void;
819+
on<T extends BrowserEvents.EventType>(event: T, handler: BrowserEvents.EventHandler<T>): void;
820820
off(event: BrowserEvents.EventType): void;
821821
}
822822

0 commit comments

Comments
 (0)