Introduce ComponentState (#4386)
* Proof of concept ComponentState * Migrate to createState and createFamilyState * Refactor * Fix * Fix tests * Fix lint * Fix tests * Re-enable coverage
This commit is contained in:
@ -33,7 +33,7 @@ export const Timeline = ({
|
||||
targetableObject: ActivityTargetableObject;
|
||||
}) => {
|
||||
const { initialized, noActivities } = useRecoilValue(
|
||||
timelineActivitiesNetworkingState,
|
||||
timelineActivitiesNetworkingState(),
|
||||
);
|
||||
|
||||
const showEmptyState = noActivities;
|
||||
|
||||
@ -26,7 +26,7 @@ const StyledScrollWrapper = styled(ScrollWrapper)``;
|
||||
|
||||
export const TimelineItemsContainer = () => {
|
||||
const timelineActivitiesForGroup = useRecoilValue(
|
||||
timelineActivitiesForGroupState,
|
||||
timelineActivitiesForGroupState(),
|
||||
);
|
||||
|
||||
const groupedActivities = groupActivitiesByMonth(timelineActivitiesForGroup);
|
||||
|
||||
@ -35,10 +35,10 @@ export const TimelineQueryEffect = ({
|
||||
});
|
||||
|
||||
const [timelineActivitiesNetworking, setTimelineActivitiesNetworking] =
|
||||
useRecoilState(timelineActivitiesNetworkingState);
|
||||
useRecoilState(timelineActivitiesNetworkingState());
|
||||
|
||||
const [timelineActivitiesForGroup, setTimelineActivitiesForGroup] =
|
||||
useRecoilState(timelineActivitiesForGroupState);
|
||||
useRecoilState(timelineActivitiesForGroupState());
|
||||
|
||||
useEffect(() => {
|
||||
if (!isNonNullable(targetableObject)) {
|
||||
|
||||
@ -1,11 +1,10 @@
|
||||
import { atomFamily } from 'recoil';
|
||||
|
||||
import { Activity } from '@/activities/types/Activity';
|
||||
import { createFamilyState } from '@/ui/utilities/state/utils/createFamilyState';
|
||||
|
||||
export const timelineActivitiesFammilyState = atomFamily<
|
||||
export const timelineActivitiesFammilyState = createFamilyState<
|
||||
Activity | null,
|
||||
string
|
||||
>({
|
||||
key: 'timelineActivitiesFammilyState',
|
||||
default: null,
|
||||
defaultValue: null,
|
||||
});
|
||||
|
||||
@ -1,10 +1,9 @@
|
||||
import { atom } from 'recoil';
|
||||
|
||||
import { ActivityForActivityGroup } from '@/activities/timeline/utils/groupActivitiesByMonth';
|
||||
import { createState } from '@/ui/utilities/state/utils/createState';
|
||||
|
||||
export const timelineActivitiesForGroupState = atom<ActivityForActivityGroup[]>(
|
||||
{
|
||||
key: 'timelineActivitiesForGroupState',
|
||||
default: [],
|
||||
},
|
||||
);
|
||||
export const timelineActivitiesForGroupState = createState<
|
||||
ActivityForActivityGroup[]
|
||||
>({
|
||||
key: 'timelineActivitiesForGroupState',
|
||||
defaultValue: [],
|
||||
});
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
import { atom } from 'recoil';
|
||||
import { createState } from '@/ui/utilities/state/utils/createState';
|
||||
|
||||
export const timelineActivitiesNetworkingState = atom<{
|
||||
export const timelineActivitiesNetworkingState = createState<{
|
||||
initialized: boolean;
|
||||
noActivities: boolean;
|
||||
}>({
|
||||
key: 'timelineActivitiesNetworkingState',
|
||||
default: {
|
||||
defaultValue: {
|
||||
initialized: false,
|
||||
noActivities: false,
|
||||
},
|
||||
|
||||
@ -1,11 +1,10 @@
|
||||
import { atomFamily } from 'recoil';
|
||||
|
||||
import { Activity } from '@/activities/types/Activity';
|
||||
import { createFamilyState } from '@/ui/utilities/state/utils/createFamilyState';
|
||||
|
||||
export const timelineActivityWithoutTargetsFamilyState = atomFamily<
|
||||
export const timelineActivityWithoutTargetsFamilyState = createFamilyState<
|
||||
Pick<Activity, 'id' | 'title' | 'createdAt' | 'author' | 'type'> | null,
|
||||
string
|
||||
>({
|
||||
key: 'timelineActivityFirstLevelFamilySelector',
|
||||
default: null,
|
||||
defaultValue: null,
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user