feat: 前端UI标题栏优化与配置更新
- 更新.gitignore,添加frontend/.next/忽略 - 优化RecordModal、index、recurring、search、stats页面标题栏样式 - 新增frontend/lib/utils.js工具函数 - 更新useCategories.js钩子 - 添加代码优化计划文档 Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -7,11 +7,20 @@ import { useToast } from '../components/ToastProvider';
|
||||
import { useConfirm } from '../components/ConfirmProvider';
|
||||
import { useCategories } from '../hooks/useCategories';
|
||||
|
||||
const DAYS = Array.from({ length: 28 }, (_, i) => i + 1);
|
||||
|
||||
export default function Recurring() {
|
||||
const router = useRouter();
|
||||
const { showToast } = useToast();
|
||||
const { confirm } = useConfirm();
|
||||
const { categories } = useCategories();
|
||||
const { categories, error: categoriesError } = useCategories();
|
||||
|
||||
// 显示分类加载错误
|
||||
useEffect(() => {
|
||||
if (categoriesError) {
|
||||
showToast('分类加载失败', { tone: 'error' });
|
||||
}
|
||||
}, [categoriesError]);
|
||||
const [bills, setBills] = useState([]);
|
||||
const [modalOpen, setModalOpen] = useState(false);
|
||||
const [editingBill, setEditingBill] = useState(null);
|
||||
@@ -170,8 +179,6 @@ export default function Recurring() {
|
||||
}
|
||||
};
|
||||
|
||||
const days = Array.from({ length: 28 }, (_, index) => index + 1);
|
||||
|
||||
const actions = (
|
||||
<button type="button" className="icon-button" aria-label="设置" onClick={() => router.push('/settings')}>
|
||||
<Icon name="settings" size={18} />
|
||||
@@ -322,7 +329,7 @@ export default function Recurring() {
|
||||
<div className="form-group">
|
||||
<label htmlFor="bill-day">日期(每月几号)</label>
|
||||
<select id="bill-day" value={formData.day} onChange={(e) => setFormData({ ...formData, day: e.target.value })} disabled={submitting || deleting}>
|
||||
{days.map((day) => (
|
||||
{DAYS.map((day) => (
|
||||
<option key={day} value={day}>{day} 日</option>
|
||||
))}
|
||||
</select>
|
||||
|
||||
Reference in New Issue
Block a user