Skip to content

Commit fd5c275

Browse files
committed
feat: removed old utils
1 parent 1ee8739 commit fd5c275

File tree

4 files changed

+14
-71
lines changed

4 files changed

+14
-71
lines changed

src/main/lib/contextMenu.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@ const webContents = (win: BrowserWindow) => win.webContents ?? (win.id && win);
77
type DecoratedMenuItem = MenuItem & Partial<{ transform: (text: string) => string; click: (menuItem: MenuItem) => void }>;
88

99
const decorateMenuItem =
10-
<T extends MenuItem>(menuItem: T) =>
11-
(options: { transform?: (text: string) => string; click?: () => void } = {}): T => {
10+
<T extends MenuItem>(menuItem: Partial<T> & { id: string; label: string }) =>
11+
(options: { transform?: (text: string) => string; click?: () => void } = {}): MenuItem => {
1212
if (options.transform && !("transform" in menuItem)) {
1313
(menuItem as unknown as DecoratedMenuItem).transform = options.transform;
1414
}
1515

16-
return menuItem;
16+
return menuItem as unknown as MenuItem;
1717
};
1818
const removeUnusedMenuItems = (menuTemplate: DecoratedMenuItem[]) => {
1919
let notDeletedPreviousElement;
@@ -130,10 +130,10 @@ const create = (win: BrowserWindow, options: ContextMenuOptions) => {
130130
defaultActions.copy(),
131131
defaultActions.paste(),
132132
shouldShowSelectAll && defaultActions.selectAll(),
133-
];
133+
].filter(Boolean) as unknown as MenuItem[];
134134

135135
if (options.menu) {
136-
menuTemplate = options.menu(defaultActions, properties, win, dictionarySuggestions, event);
136+
menuTemplate = options.menu(defaultActions, properties, win, [], event);
137137
}
138138

139139
if (options.prepend) {
@@ -154,7 +154,7 @@ const create = (win: BrowserWindow, options: ContextMenuOptions) => {
154154

155155
// Filter out leading/trailing separators
156156
// TODO: https://github.com/electron/electron/issues/5869
157-
menuTemplate = removeUnusedMenuItems(menuTemplate);
157+
menuTemplate = removeUnusedMenuItems(menuTemplate as unknown as DecoratedMenuItem[]);
158158

159159
for (const menuItem of menuTemplate) {
160160
// Apply custom labels for default menu items
@@ -170,17 +170,17 @@ const create = (win: BrowserWindow, options: ContextMenuOptions) => {
170170
}
171171

172172
if (menuTemplate.length > 0) {
173-
const menu = electron.Menu.buildFromTemplate(menuTemplate);
173+
const menu = electron.Menu.buildFromTemplate(menuTemplate as unknown as MenuItem[]);
174174

175175
if (typeof options.onShow === "function") {
176-
menu.on("menu-will-show", options.onShow);
176+
menu.on("menu-will-show", options.onShow as any);
177177
}
178178

179179
if (typeof options.onClose === "function") {
180-
menu.on("menu-will-close", options.onClose);
180+
menu.on("menu-will-close", options.onClose as any);
181181
}
182182

183-
menu.popup(win);
183+
menu.popup({ window: win });
184184
}
185185
};
186186

src/preload/utils.ts

Lines changed: 0 additions & 51 deletions
This file was deleted.

src/renderer/src/lib/searchEngine.ts

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ function parseSize(sizeStr: string): { value: number; unit: "b" | "kb" | "mb" |
2323
unit: match[2].toLowerCase() as "b" | "kb" | "mb" | "gb",
2424
};
2525
}
26+
export type SearchItem<T> = T & { type: MediaType; filesize: number; status: StatusType; [k: string]: any };
2627

2728
/**
2829
* Parses the search string into filters and free text.
@@ -75,14 +76,7 @@ export class SearchEngine {
7576
* Filters a list of items using the parsed query.
7677
* Items must support at least: type, size(bytes), status and optionally any string content for matching with text search.
7778
*/
78-
filterResults<
79-
T extends {
80-
type: MediaType;
81-
filesize: number; // in bytes
82-
status: StatusType;
83-
[k: string]: any;
84-
},
85-
>(items: T[], query: string, stringFields: (keyof T)[]): T[] {
79+
filterResults<T, TItem extends SearchItem<T>>(items: TItem[], query: string, stringFields: (keyof TItem)[]): TItem[] {
8680
const filters = this.parse(query);
8781
logger.debug("filters", { filters });
8882
return items.filter((item) => {

src/renderer/src/pages/components/link-list.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { Spinner } from "@renderer/components/ui/spinner";
66
import SuspenseLoader from "@renderer/components/ui/suspense-loader";
77
import { QTooltip } from "@renderer/components/ui/tooltip";
88
import { TrimSubdomainRegex } from "@renderer/lib/regex";
9-
import { SearchEngine } from "@renderer/lib/searchEngine";
9+
import { SearchEngine, SearchItem } from "@renderer/lib/searchEngine";
1010
import { trpc } from "@renderer/lib/trpc-link";
1111
import { cn } from "@renderer/lib/utils";
1212
import { createLogger } from "@shared/logger";
@@ -195,7 +195,7 @@ export default function LinkList(props: { className?: string }) {
195195
const [searchEngine] = useState(() => new SearchEngine());
196196
const filteredItems = useMemo(() => {
197197
const activeItems = items?.filter((d) => d.state === "downloading" || d.state === "fetching_meta" || d.state === "queued") ?? [];
198-
const results = searchEngine.filterResults(items ?? [], search ?? "", ["title", "source", "url"]);
198+
const results = searchEngine.filterResults((items ?? []) as unknown as SearchItem<YTDLItem>[], search ?? "", ["title", "source", "url"]);
199199
if (search) {
200200
return activeItems?.reduce((acc, item) => {
201201
if (!results.find((d) => d.id === item.id)) acc.push(item as YTDLItem);

0 commit comments

Comments
 (0)