owltide/plugins/payload-client-map.ts

26 lines
558 B
TypeScript
Raw Normal View History

import { Info } from "~/shared/utils/luxon";
export default definePayloadPlugin(() => {
definePayloadReducer(
"ClientMap",
data => {
if (!(data instanceof ClientMap)) {
return;
}
const accountStore = useAccountStore();
return {
timezone: accountStore.activeTimezone,
locale: accountStore.activeLocale,
api: data.toApi(false),
};
},
);
definePayloadReviver(
"ClientMap",
({ timezone, locale, api }) => {
const zone = Info.normalizeZone(timezone);
return ClientMap.fromApi(api, { zone, locale })
},
);
});