46 lines
1.2 KiB
TypeScript
46 lines
1.2 KiB
TypeScript
import type {TrackingScopeKind} from '../api/adminApiTypes';
|
|
|
|
export interface AdminTrackingEventDefinition {
|
|
key: string;
|
|
title: string;
|
|
scopeKind: TrackingScopeKind;
|
|
remark: string;
|
|
}
|
|
|
|
export const adminTrackingEventDefinitions: AdminTrackingEventDefinition[] = [
|
|
{
|
|
key: 'daily_login',
|
|
title: '每日登录',
|
|
scopeKind: 'user',
|
|
remark: '用户打开任务中心时由后端幂等记录,用于每日登录任务进度校验。',
|
|
},
|
|
];
|
|
|
|
export function findAdminTrackingEventDefinition(eventKey: string) {
|
|
const normalizedEventKey = eventKey.trim();
|
|
return (
|
|
adminTrackingEventDefinitions.find(
|
|
(definition) => definition.key === normalizedEventKey,
|
|
) ?? null
|
|
);
|
|
}
|
|
|
|
export function filterAdminTrackingEventDefinitions(query: string) {
|
|
const normalizedQuery = query.trim().toLowerCase();
|
|
if (!normalizedQuery) {
|
|
return adminTrackingEventDefinitions;
|
|
}
|
|
|
|
return adminTrackingEventDefinitions.filter((definition) => {
|
|
const haystack = [
|
|
definition.key,
|
|
definition.title,
|
|
definition.scopeKind,
|
|
definition.remark,
|
|
]
|
|
.join(' ')
|
|
.toLowerCase();
|
|
return haystack.includes(normalizedQuery);
|
|
});
|
|
}
|