2024-09-14 19:43:14 -05:00
|
|
|
import lodash from 'lodash-es';
|
2024-07-09 19:53:50 -05:00
|
|
|
import { create } from 'zustand';
|
|
|
|
|
import { persist, subscribeWithSelector } from 'zustand/middleware';
|
2024-09-14 18:32:36 -05:00
|
|
|
import { createContextualSafeStore } from '../core/zustand/createContextualSafeStore';
|
2024-07-09 19:53:50 -05:00
|
|
|
|
|
|
|
|
export type DeltaMode = 'none' | 'percentage' | 'absolute';
|
|
|
|
|
export interface ComparePersistent {
|
|
|
|
|
deltaMode: DeltaMode;
|
|
|
|
|
}
|
|
|
|
|
|
2024-09-14 18:32:36 -05:00
|
|
|
export const { Provider, use, useMutation, useStore } =
|
|
|
|
|
createContextualSafeStore(() =>
|
2024-07-09 19:53:50 -05:00
|
|
|
create<ComparePersistent>()(
|
|
|
|
|
persist(
|
|
|
|
|
subscribeWithSelector<ComparePersistent>(() => ({
|
|
|
|
|
deltaMode: 'none',
|
|
|
|
|
})),
|
|
|
|
|
{
|
|
|
|
|
name: 'compare',
|
2024-09-14 18:32:36 -05:00
|
|
|
merge: (a, b) => lodash.merge(b, a),
|
2024-07-09 19:53:50 -05:00
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
),
|
2024-09-14 18:32:36 -05:00
|
|
|
);
|