mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-20 12:11:17 -05:00
Fix admin settings rendering and refresh logic
This commit is contained in:
@@ -318,12 +318,52 @@ export default function AdminSettings() {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Boolean/switch settings
|
// Auto-refresh strategy setting
|
||||||
if (setting.setting_key.includes('email_alerts') ||
|
if (setting.setting_key === 'auto_refresh_strategy') {
|
||||||
setting.setting_key.includes('require_approval') ||
|
return (
|
||||||
setting.setting_key.includes('auto_cleanup') ||
|
<Card className="p-4">
|
||||||
setting.setting_key.includes('enable_') ||
|
<div className="space-y-4">
|
||||||
setting.setting_key.includes('allow_')) {
|
<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 = () => {
|
const getSettingIcon = () => {
|
||||||
if (setting.setting_key.includes('email_alerts')) return <Bell className="w-4 h-4 text-blue-500" />;
|
if (setting.setting_key.includes('email_alerts')) return <Bell className="w-4 h-4 text-blue-500" />;
|
||||||
|
|||||||
Reference in New Issue
Block a user