Skip to content
This repository has been archived by the owner on Jan 2, 2022. It is now read-only.

Commit

Permalink
Merge pull request #61 from jcmnunes/release/v0.12.0
Browse files Browse the repository at this point in the history
v0.12.0
  • Loading branch information
jcmnunes authored Sep 19, 2020
2 parents 3cd1cfb + 213a0ee commit e651308
Show file tree
Hide file tree
Showing 23 changed files with 106 additions and 74 deletions.
14 changes: 7 additions & 7 deletions backend/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions backend/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "widy-backend",
"version": "0.11.0",
"version": "0.12.0",
"description": "Widy app backend",
"main": "build/index.js",
"repository": {
Expand Down Expand Up @@ -36,7 +36,7 @@
"joi-objectid": "^3.0.1",
"jsonwebtoken": "^8.5.1",
"juice": "^6.0.0",
"lodash": "^4.17.15",
"lodash": "^4.17.19",
"moment": "^2.27.0",
"mongoose": "^5.9.21",
"mongoose-mongodb-errors": "0.0.2",
Expand Down
20 changes: 7 additions & 13 deletions frontend/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions frontend/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "widy-frontend",
"version": "0.11.0",
"version": "0.12.0",
"private": true,
"proxy": "http://localhost:5000",
"scripts": {
Expand Down Expand Up @@ -45,8 +45,8 @@
"react-detect-offline": "^2.4.0",
"react-dom": "^16.13.1",
"react-hook-form": "^5.7.2",
"react-query": "1.5.5",
"react-query-devtools": "^1.2.0",
"react-query": "2.4.13",
"react-query-devtools": "^2.2.1",
"react-redux": "^7.2.0",
"react-router": "^5.2.0",
"react-router-dom": "^5.2.0",
Expand Down
26 changes: 15 additions & 11 deletions frontend/src/config/queryConfig.ts
Original file line number Diff line number Diff line change
@@ -1,18 +1,22 @@
import { AxiosError } from 'axios';

export const queryConfig = {
refetchAllOnWindowFocus: false,
suspense: false,
staleTime: Infinity,
retry: (failureCount: number, error: unknown) => {
if ((error as AxiosError).response) {
switch ((error as AxiosError).response?.status) {
case 404:
return false;
default:
shared: {
suspense: false,
},
queries: {
refetchOnWindowFocus: false,
staleTime: Infinity,
retry: (failureCount: number, error: unknown) => {
if ((error as AxiosError).response) {
switch ((error as AxiosError).response?.status) {
case 404:
return false;
default:
}
}
}

return failureCount <= 3;
return failureCount <= 3;
},
},
};
3 changes: 2 additions & 1 deletion frontend/src/features/day/Board/BoardHeader/BoardHeader.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import React, { useCallback } from 'react';
import moment from 'moment';
import { Icon } from '@binarycapsule/ui-capsules';
import { useDispatch } from 'react-redux';
import { QueryStatus } from 'react-query';
import { BoardTopActions } from '../BoardTopActions/BoardTopActions';
import { BoardHeaderLoading } from './BoardHeader.loading';
import {
Expand All @@ -17,7 +18,7 @@ import { Brand } from '../../../daysNav/Brand/Brand';
import { daysNavSliceActions } from '../../../daysNav/DaysNavSlice';

interface Props {
status: 'loading' | 'error' | 'success';
status: QueryStatus;
day?: DayDto;
}

Expand Down
3 changes: 2 additions & 1 deletion frontend/src/features/day/SideBar/SideBar.styles.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,9 @@ export const StyledSidebar = styled.div<{ isOpen?: boolean }>`
z-index: 999;
right: 0;
transform: ${({ isOpen }) => `translateX(${isOpen ? 0 : '448px'})`};
transition: transform 0.2s ease;
transition: transform 0.2s cubic-bezier(0, 0.52, 0, 1);
box-shadow: 0 10px 20px hsla(0, 0%, 0%, 0.15), 0 3px 6px hsla(0, 0%, 0%, 0.1);
border-left: 1px solid ${({ theme }) => theme.yellow075};
@media (min-width: ${props => props.theme.breakpoints.mobile}) {
width: 448px;
Expand Down
3 changes: 2 additions & 1 deletion frontend/src/features/day/Task/Task.syles.ts
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,8 @@ export const StyledTask = styled.div<StyledTaskProps>`
flex-direction: row;
border: ${props =>
props.isPlan || props.isSchedule ? 'none' : `1px solid ${getColors(props).border}`};
border-bottom: ${({ isPlan, isSchedule, theme }) =>
(isPlan || isSchedule) && `1px solid ${theme.neutral100}`};
border-radius: ${({ isPlan, isSchedule }) => (isPlan || isSchedule ? 0 : '4px')};
background-color: ${props => getColors(props).background};
padding: 8px;
Expand All @@ -96,7 +98,6 @@ export const StyledTask = styled.div<StyledTaskProps>`
cursor: pointer;
${({ isActive }) => isActive && isActiveMixin};
${StyledScopeCode},
${ActionsContainer} {
display: ${({ isPlan, isSchedule, isSelected }) =>
(isPlan || isSchedule) && !isSelected && 'none'};
Expand Down
7 changes: 6 additions & 1 deletion frontend/src/features/day/TaskMenu/TaskMenu.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,12 @@ export const TaskMenu: React.FC<Props> = ({ dayId, sectionId, task, isPlan }) =>
)}

{showRegisterTimeModal && (
<RegisterTimeModal closeModal={() => setShowRegisterTimeModal(false)} />
<RegisterTimeModal
taskId={task.id}
sectionId={sectionId}
dayId={dayId}
closeModal={() => setShowRegisterTimeModal(false)}
/>
)}
</>
);
Expand Down
9 changes: 8 additions & 1 deletion frontend/src/features/day/Timer/Timer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import React, { useState } from 'react';
import moment from 'moment';
import { useSelector } from 'react-redux';
import { Button } from '@binarycapsule/ui-capsules';
import { useParams } from 'react-router';
import { TimerButton } from './TimerButton/TimerButton';
import { Time } from './Time/Time';
import { activeTaskTickSelector } from '../activeTask/activeTaskSelectors';
Expand All @@ -17,6 +18,7 @@ interface Props {
}

export const Timer: React.FC<Props> = ({ task, section }) => {
const { dayId } = useParams();
const [isRegisterModalOpen, setIsRegisterModalOpen] = useState(false);

const { data: activeTaskData } = useActiveTask();
Expand Down Expand Up @@ -54,7 +56,12 @@ export const Timer: React.FC<Props> = ({ task, section }) => {
</StyledTimer>

{isRegisterModalOpen && (
<RegisterTimeModal closeModal={() => setIsRegisterModalOpen(false)} />
<RegisterTimeModal
taskId={task.id}
sectionId={section.id}
dayId={dayId}
closeModal={() => setIsRegisterModalOpen(false)}
/>
)}
</>
);
Expand Down
7 changes: 6 additions & 1 deletion frontend/src/features/day/Timer/TimerButton/TimerButton.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ interface Props {
export const TimerButton: React.FC<Props> = ({ size, task, sectionId }) => {
const { dayId } = useParams();
const { status, data: activeTaskData } = useActiveTask();
const [updateTask] = useUpdateTask();
const [updateTask, { isLoading }] = useUpdateTask();
const history = useHistory();
const dispatch = useDispatch();

Expand All @@ -40,6 +40,11 @@ export const TimerButton: React.FC<Props> = ({ size, task, sectionId }) => {
colors={isActive ? colors.active : undefined}
icon={isActive ? 'stop' : 'play'}
onClick={() => {
// Debounce to prevent simultaneous requests
if (isLoading) {
return;
}

const payload = isActive
? {
start: null,
Expand Down
4 changes: 2 additions & 2 deletions frontend/src/features/day/api/useDay.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,13 @@ export interface DayDto {
sections: SectionDto[];
}

const getDayById = async (_: string, dayId: string) => {
const getDayById = async (_: string, dayId?: string) => {
const { data } = await axios.get<DayDto>(`/api/days/${dayId}`);
return data;
};

export const useDay = (dayId?: string) => {
return useQuery(dayId ? ['day', dayId] : null, getDayById);
return useQuery(['day', dayId], getDayById, { enabled: dayId });
};

export const useSection = (dayId?: string, sectionId?: string): SectionDto | null => {
Expand Down
10 changes: 5 additions & 5 deletions frontend/src/features/day/api/useDeleteTask.ts
Original file line number Diff line number Diff line change
Expand Up @@ -88,10 +88,10 @@ export const useDeleteTask = () => {
});
},

onSettled: (result, err, { body: { dayId } }) => {
queryCache.refetchQueries(['day', dayId]);
queryCache.refetchQueries('activeTask');
queryCache.refetchQueries('schedule');
},
// onSettled: (result, err, { body: { dayId } }) => {
// queryCache.invalidateQueries(['day', dayId]);
// queryCache.invalidateQueries('activeTask');
// queryCache.invalidateQueries('schedule');
// },
});
};
8 changes: 4 additions & 4 deletions frontend/src/features/day/api/useMoveAll.ts
Original file line number Diff line number Diff line change
Expand Up @@ -82,9 +82,9 @@ export const useMoveAll = () => {
});
},

onSettled: (result, err, { body: { dayId } }) => {
queryCache.refetchQueries(['day', dayId]);
queryCache.refetchQueries('schedule');
},
// onSettled: (result, err, { body: { dayId } }) => {
// queryCache.invalidateQueries(['day', dayId]);
// queryCache.invalidateQueries('schedule');
// },
});
};
10 changes: 5 additions & 5 deletions frontend/src/features/day/api/useMoveTask.ts
Original file line number Diff line number Diff line change
Expand Up @@ -214,10 +214,10 @@ export const useMoveTask = () => {
});
},

onSettled: (result, err, { body: { dayId } }) => {
queryCache.refetchQueries(['day', dayId]);
queryCache.refetchQueries('activeTask');
queryCache.refetchQueries('schedule');
},
// onSettled: (result, err, { body: { dayId } }) => {
// queryCache.invalidateQueries(['day', dayId]);
// queryCache.invalidateQueries('activeTask');
// queryCache.invalidateQueries('schedule');
// },
});
};
8 changes: 4 additions & 4 deletions frontend/src/features/day/api/useScheduleTask.ts
Original file line number Diff line number Diff line change
Expand Up @@ -72,9 +72,9 @@ export const useScheduleTask = () => {
});
},

onSettled: (result, err, { body: { dayId } }) => {
queryCache.refetchQueries(['day', dayId]);
queryCache.refetchQueries('schedule');
},
// onSettled: (result, err, { body: { dayId } }) => {
// queryCache.invalidateQueries(['day', dayId]);
// queryCache.invalidateQueries('schedule');
// },
});
};
13 changes: 8 additions & 5 deletions frontend/src/features/day/api/useUpdateTask.ts
Original file line number Diff line number Diff line change
Expand Up @@ -98,9 +98,12 @@ export const useUpdateTask = () => {
} as ActiveTaskDto);
}

// We are stopping a task
// We are editing task time
if (payload.time) {
queryCache.setQueryData('activeTask', emptyActiveTask);
// We are stopping the active task
if (previousActiveTask.taskId === taskId) {
queryCache.setQueryData('activeTask', emptyActiveTask);
}
}

if (payload.title) {
Expand Down Expand Up @@ -151,9 +154,9 @@ export const useUpdateTask = () => {
},

onSettled: (result, err, { body: { dayId } }) => {
queryCache.refetchQueries(['day', dayId]);
queryCache.refetchQueries('activeTask');
queryCache.refetchQueries('schedule');
queryCache.invalidateQueries(['day', dayId]);
queryCache.invalidateQueries('activeTask');
queryCache.invalidateQueries('schedule');
},
});
};
8 changes: 8 additions & 0 deletions frontend/src/features/day/dialogs/ScheduleTaskDialog.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import React from 'react';
import { Dialog, DialogAction } from '@binarycapsule/ui-capsules';
import { useHistory, useParams } from 'react-router';
import { ScheduleTaskVariables, useScheduleTask } from '../api/useScheduleTask';

interface Props {
Expand All @@ -15,6 +16,9 @@ export const ScheduleTaskDialog: React.FC<Props> = ({
taskId,
onRequestClose,
}) => {
const { taskId: selectedTaskId } = useParams();
const history = useHistory();

const [scheduleTask] = useScheduleTask();

const scheduleTaskAction = () => {
Expand All @@ -24,6 +28,10 @@ export const ScheduleTaskDialog: React.FC<Props> = ({
};
onRequestClose();

if (selectedTaskId === taskId) {
history.push(`/day/${dayId}`);
}

return scheduleTask(scheduleTaskVariables);
};

Expand Down
Loading

0 comments on commit e651308

Please # to comment.