Fix admin settings rendering and refresh logic

This commit is contained in:
gpt-engineer-app[bot]
2025-10-12 14:59:41 +00:00
parent 391e6a07fd
commit aff3581eaf

View File

@@ -318,12 +318,52 @@ export default function AdminSettings() {
);
}
// Boolean/switch settings
if (setting.setting_key.includes('email_alerts') ||
setting.setting_key.includes('require_approval') ||
setting.setting_key.includes('auto_cleanup') ||
setting.setting_key.includes('enable_') ||
setting.setting_key.includes('allow_')) {
// Auto-refresh strategy setting
if (setting.setting_key === 'auto_refresh_strategy') {
return (
<Card className="p-4">
<div className="space-y-4">
<div className="flex items-center gap-2">
<Settings className="w-4 h-4 text-purple-500" />
<Label className="text-base font-medium">Auto-Refresh Strategy</Label>
</div>
<p className="text-sm text-muted-foreground">
How the moderation queue handles new items when they arrive
</p>
<div className="flex items-center gap-4">
<Select
value={typeof localValue === 'string' ? localValue.replace(/"/g, '') : localValue}
onValueChange={(value) => {
setLocalValue(value);
updateSetting(setting.setting_key, JSON.stringify(value));
}}
>
<SelectTrigger className="w-48">
<SelectValue />
</SelectTrigger>
<SelectContent>
<SelectItem value="merge">Merge silently</SelectItem>
<SelectItem value="replace">Replace all</SelectItem>
<SelectItem value="notify">Show notification</SelectItem>
</SelectContent>
</Select>
<Badge variant="outline">
Current: {typeof localValue === 'string' ? localValue.replace(/"/g, '') : localValue}
</Badge>
</div>
</div>
</Card>
);
}
// Helper to check if value is boolean
const isBooleanSetting = (value: any) => {
return value === true || value === false ||
value === 'true' || value === 'false';
};
// Boolean/switch settings - check by value type instead of key pattern
if (isBooleanSetting(setting.setting_value)) {
const getSettingIcon = () => {
if (setting.setting_key.includes('email_alerts')) return <Bell className="w-4 h-4 text-blue-500" />;