Files
hipmi/src/lib/global_state.ts

72 lines
1.9 KiB
TypeScript

import { atom } from "jotai";
/**
* @param status | status jika perlu acc admin > "Publish", "Review", "Draft", "Reject"
* @param status | khusus kategori | EVENT > "Peserta Event" | VOTING > "Voting Masuk" | DONASI > "Berhasil", "Proses", "Menunggu", "Gagal"
*/
export type ITypeStatusNotifikasi =
| "Publish"
| "Review"
| "Draft"
| "Reject"
// EVENT
| "Peserta Event"
// VOTING
| "Voting Masuk"
// DONASI & INVESTASI
| "Berhasil"
| "Proses"
| "Menunggu"
| "Gagal"
// Collaboration
| "Partisipan Project"
/**
* @param kategoriApp | "JOB", "VOTING", "EVENT", "DONASI", "INVESTASI", "COLLABORATION", "FORUM"
* @type string
*/
export type IRealtimeData = {
status?: ITypeStatusNotifikasi;
appId?: string;
userId: string;
pesan?: string;
title?: string;
kategoriApp?:
| "JOB"
| "VOTING"
| "EVENT"
| "DONASI"
| "INVESTASI"
| "COLLABORATION"
| "FORUM"
| "ACCESS"; // Untuk trigger akses user
};
// Access User
export const gs_access_user = atom<boolean>(false);
export const gs_realtimeData = atom<IRealtimeData | null>(null);
export const gs_admin_ntf = atom<number>(0);
export const gs_user_ntf = atom<number>(0);
export const gs_count_ntf = atom<number | null>(null);
// job
export const gs_adminJob_triggerReview = atom<boolean>(false);
export const gs_jobTiggerBeranda = atom<boolean>(false);
// event
export const gs_adminEvent_triggerReview = atom<boolean>(false);
export const gs_eventTriggerBeranda = atom<boolean>(false);
// voting
export const gs_adminVoting_triggerReview = atom<boolean>(false);
export const gs_votingTiggerBeranda = atom<boolean>(false);
// donasi
export const gs_adminDonasi_triggerReview = atom<boolean>(false);
export const gs_donasiTriggerBeranda = atom<boolean>(false);
// investasi
export const gs_adminInvestasi_triggerReview = atom<boolean>(false);
export const gs_investasiTriggerBeranda = atom<boolean>(false);