import { StateCreator } from 'zustand';
import { uuid } from '../utilities';
import type { BannersSlice, CombinedStore, Banner, BannerType } from './types';

export const createBannersSlice: StateCreator<
	CombinedStore,
	[],
	[],
	BannersSlice
> = (set, getState) => ({
	banners: [],
	addBanner: (content: string, type: BannerType = 'success') => {
		const banners = getState().banners;
		set({
			banners: [
				...banners,
				{
					uuid: uuid(),
					content,
					type,
				},
			],
		});
	},
	removeBanner: (banner: Banner) => {
		const banners = getState().banners;
		set({
			banners: banners.filter((b) => b.uuid !== banner.uuid),
		});
	},
});
