'use client';

import { createContext, useContext } from 'react';
import type { Dispatch, SetStateAction } from 'react';
import type { GoalConfigItem } from '@/types/response/donation/goalConfig';

export type GoalConfigContextValue = {
	items: GoalConfigItem[];
	loading: boolean;
	saving: boolean;
	setSaving: Dispatch<SetStateAction<boolean>>;
	fetchList: () => void;
};

export const GoalConfigContext = createContext<GoalConfigContextValue|null>(null);

export function useGoalConfigContext(): GoalConfigContextValue {
	const ctx = useContext(GoalConfigContext);
	if (!ctx) {
		throw new Error('useGoalConfigContext must be used within GoalConfigProvider');
	}
	return ctx;
}