summaryrefslogtreecommitdiff
path: root/src/modules/rules/utils.ts
diff options
context:
space:
mode:
authorLarvan2 <[email protected]>2026-03-15 15:01:57 +0800
committerLarvan2 <[email protected]>2026-03-15 15:01:57 +0800
commit0e420859f5f7011ba124c965d8319bf3bf4c5fe3 (patch)
tree2fc344b757e119ebae6e0b6243121fddba61603c /src/modules/rules/utils.ts
parent17c4d2855ffb6914fcbece27367bafdd27a4c182 (diff)
refactor: reorganize code
Diffstat (limited to 'src/modules/rules/utils.ts')
-rw-r--r--src/modules/rules/utils.ts24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/modules/rules/utils.ts b/src/modules/rules/utils.ts
new file mode 100644
index 0000000..c1d1464
--- /dev/null
+++ b/src/modules/rules/utils.ts
@@ -0,0 +1,24 @@
+import { ClashAPIConfig } from '~/types';
+
+export type RulesListItemData = {
+ rules: any[] | null;
+ provider: any;
+ apiConfig: ClashAPIConfig;
+};
+
+export function itemKey(index: number, { rules, provider }: RulesListItemData) {
+ if (!rules) {
+ return provider.names[index];
+ }
+ return rules[index].id;
+}
+
+export function getItemSizeFactory({ isRulesTab }: { isRulesTab: boolean }) {
+ return function getItemSize() {
+ return isRulesTab ? 70 : 100;
+ };
+}
+
+export function formatQty(qty: number) {
+ return qty < 100 ? String(qty) : '99+';
+}