30 lines
948 B
TypeScript
30 lines
948 B
TypeScript
// app/admin/actions.ts
|
|
|
|
'use server';
|
|
|
|
import { getConfig, updateConfig } from '../lib/config';
|
|
import { revalidatePath } from 'next/cache';
|
|
|
|
export async function saveConfigAction(prevState: any, formData: FormData) {
|
|
const config = await getConfig();
|
|
|
|
const newConfig = {
|
|
...config,
|
|
showBeachPromo: formData.get('showBeachPromo') === 'on',
|
|
beachPage: {
|
|
...config.beachPage,
|
|
matchStart: formData.get('matchStart') as string,
|
|
festivalLink: formData.get('festivalLink') as string,
|
|
closeReason: formData.get('closeReason') as string,
|
|
otherInfo: formData.get('otherInfo') as string,
|
|
prizesText: formData.get('prizesText') as string,
|
|
isClosedOverride: formData.get('isClosedOverride') === 'on',
|
|
}
|
|
};
|
|
|
|
await updateConfig(newConfig);
|
|
revalidatePath('/');
|
|
revalidatePath('/beach');
|
|
|
|
return { success: true };
|
|
} |