统一 Rust 与 TypeScript 格式化门禁
纳入 AGC Cargo workspace 的统一 rustfmt 检查与格式化入口 完成项目 TypeScript/Prettier 与 Rust 全量格式化 修复 Pingora expected executable 门禁的空白敏感误报 同步开发运维文档与 AGC skill pack 格式化忽略规则
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import {RefreshCcw, Save} from 'lucide-react';
|
||||
import {FormEvent, useEffect, useState} from 'react';
|
||||
import { RefreshCcw, Save } from 'lucide-react';
|
||||
import { FormEvent, useEffect, useState } from 'react';
|
||||
|
||||
import {
|
||||
listProfileInviteCodes,
|
||||
@@ -10,8 +10,8 @@ import type {
|
||||
ProfileCodeOperationAdminResponse,
|
||||
ProfileInviteCodeAdminResponse,
|
||||
} from '../api/adminApiTypes';
|
||||
import {useAdminWriteConfirm} from '../components/useAdminWriteConfirm';
|
||||
import {handlePageError} from './pageUtils';
|
||||
import { useAdminWriteConfirm } from '../components/useAdminWriteConfirm';
|
||||
import { handlePageError } from './pageUtils';
|
||||
|
||||
interface AdminInviteCodePageProps {
|
||||
token: string;
|
||||
@@ -30,10 +30,12 @@ export function AdminInviteCodePage({
|
||||
const [errorMessage, setErrorMessage] = useState('');
|
||||
const [listErrorMessage, setListErrorMessage] = useState('');
|
||||
const [entries, setEntries] = useState<ProfileInviteCodeAdminResponse[]>([]);
|
||||
const [operations, setOperations] = useState<ProfileCodeOperationAdminResponse[]>([]);
|
||||
const [operations, setOperations] = useState<
|
||||
ProfileCodeOperationAdminResponse[]
|
||||
>([]);
|
||||
const [isSaving, setIsSaving] = useState(false);
|
||||
const [isLoading, setIsLoading] = useState(false);
|
||||
const {confirmWrite, confirmDialog} = useAdminWriteConfirm();
|
||||
const { confirmWrite, confirmDialog } = useAdminWriteConfirm();
|
||||
|
||||
useEffect(() => {
|
||||
void refreshInviteCodes();
|
||||
@@ -239,7 +241,9 @@ export function AdminInviteCodePage({
|
||||
<TagList tags={metadataUserTags(entry.metadata)} />
|
||||
</td>
|
||||
<td>
|
||||
<span className={`admin-status ${inviteValidityClass(entry)}`}>
|
||||
<span
|
||||
className={`admin-status ${inviteValidityClass(entry)}`}
|
||||
>
|
||||
{inviteValidityLabel(entry)}
|
||||
</span>
|
||||
<small>{formatValidityWindow(entry)}</small>
|
||||
@@ -296,7 +300,7 @@ export function AdminInviteCodePage({
|
||||
);
|
||||
}
|
||||
|
||||
function TagList({tags}: {tags: string[]}) {
|
||||
function TagList({ tags }: { tags: string[] }) {
|
||||
if (!tags.length) {
|
||||
return <span className="admin-muted-text">-</span>;
|
||||
}
|
||||
@@ -318,14 +322,18 @@ function metadataUserTags(metadata: Record<string, unknown>) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return parseUserTags(raw.filter((value): value is string => typeof value === 'string').join('、'));
|
||||
return parseUserTags(
|
||||
raw
|
||||
.filter((value): value is string => typeof value === 'string')
|
||||
.join('、'),
|
||||
);
|
||||
}
|
||||
|
||||
function withMetadataUserTags(
|
||||
metadata: Record<string, unknown>,
|
||||
tags: string[],
|
||||
): Record<string, unknown> {
|
||||
const next = {...metadata};
|
||||
const next = { ...metadata };
|
||||
delete next.user_tags;
|
||||
if (tags.length) {
|
||||
next.userTags = tags;
|
||||
@@ -443,7 +451,7 @@ function formatDateTime(value: string) {
|
||||
if (!Number.isFinite(date.getTime())) {
|
||||
return value;
|
||||
}
|
||||
return date.toLocaleString('zh-CN', {hour12: false});
|
||||
return date.toLocaleString('zh-CN', { hour12: false });
|
||||
}
|
||||
|
||||
function operationActionLabel(action: string) {
|
||||
|
||||
Reference in New Issue
Block a user