refactor: polling is now turned off in development mode

This commit is contained in:
Jordan Knott 2021-04-30 23:36:58 -05:00
parent e2634dc490
commit 167d285d02
8 changed files with 25 additions and 5 deletions

1
frontend/.env Normal file
View File

@ -0,0 +1 @@
REACT_APP_ENABLE_POLLING=true

View File

@ -0,0 +1 @@
REACT_APP_ENABLE_POLLING=false

View File

@ -36,6 +36,7 @@ import Input from 'shared/components/Input';
import { useForm } from 'react-hook-form';
import updateApolloCache from 'shared/utils/cache';
import NOOP from 'shared/utils/noop';
import polling from 'shared/utils/polling';
export const ActionsList = styled.ul`
margin: 0;
@ -384,7 +385,7 @@ const Details: React.FC<DetailsProps> = ({
});
const { loading, data, refetch } = useFindTaskQuery({
variables: { taskID },
pollInterval: 3000,
pollInterval: polling.TASK_DETAILS,
fetchPolicy: 'cache-and-network',
});
const [setTaskComplete] = useSetTaskCompleteMutation();

View File

@ -35,6 +35,7 @@ import Board, { BoardLoading } from './Board';
import Details from './Details';
import LabelManagerEditor from './LabelManagerEditor';
import UserManagementPopup from './UserManagementPopup';
import polling from 'shared/utils/polling';
type TaskRouteProps = {
taskID: string;
@ -60,7 +61,7 @@ const Project = () => {
const [updateTaskName] = useUpdateTaskNameMutation();
const { data, error } = useFindProjectQuery({
variables: { projectID },
pollInterval: 3000,
pollInterval: polling.PROJECT,
});
const [toggleTaskLabel] = useToggleTaskLabelMutation({
onCompleted: newTaskLabel => {

View File

@ -22,6 +22,7 @@ import produce from 'immer';
import NOOP from 'shared/utils/noop';
import theme from 'App/ThemeStyles';
import { mixin } from '../shared/utils/styles';
import polling from 'shared/utils/polling';
type CreateTeamData = { teamName: string };
@ -203,7 +204,7 @@ type ShowNewProject = {
const Projects = () => {
const { showPopup, hidePopup } = usePopup();
const { loading, data } = useGetProjectsQuery({ pollInterval: 3000, fetchPolicy: 'cache-and-network' });
const { loading, data } = useGetProjectsQuery({ pollInterval: polling.PROJECTS, fetchPolicy: 'cache-and-network' });
useEffect(() => {
document.title = 'Taskcafé';
}, []);

View File

@ -2,6 +2,7 @@ import React, { useState } from 'react';
import Input from 'shared/components/Input';
import updateApolloCache from 'shared/utils/cache';
import produce from 'immer';
import polling from 'shared/utils/polling';
import Button from 'shared/components/Button';
import { useCurrentUser } from 'App/context';
import Select from 'shared/components/Select';
@ -422,7 +423,7 @@ const Members: React.FC<MembersProps> = ({ teamID }) => {
const { loading, data } = useGetTeamQuery({
variables: { teamID },
fetchPolicy: 'cache-and-network',
pollInterval: 3000,
pollInterval: polling.MEMBERS,
});
const { user } = useCurrentUser();
const warning =

View File

@ -9,6 +9,7 @@ import {
import { Link } from 'react-router-dom';
import Input from 'shared/components/Input';
import theme from 'App/ThemeStyles';
import polling from 'shared/utils/polling';
const FilterSearch = styled(Input)`
margin: 0;
@ -158,7 +159,7 @@ const TeamProjects: React.FC<TeamProjectsProps> = ({ teamID }) => {
const { loading, data } = useGetTeamQuery({
variables: { teamID },
fetchPolicy: 'cache-and-network',
pollInterval: 3000,
pollInterval: polling.TEAM_PROJECTS,
});
if (data) {
return (

View File

@ -0,0 +1,13 @@
function resolve(interval: number) {
if (process.env.REACT_APP_ENABLE_POLLING === 'true') return interval;
return 0;
}
const polling = {
PROJECTS: resolve(3000),
PROJECT: resolve(3000),
MEMBERS: resolve(3000),
TEAM_PROJECTS: resolve(3000),
TASK_DETAILS: resolve(3000),
};
export default polling;