mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-28 10:29:11 +00:00
refactor: get data from query
This commit is contained in:
@@ -283,14 +283,10 @@ export const postPushSheet = async (id: string, worksheet: string) => {
|
|||||||
* @description HTTP request to retrieve sheets state
|
* @description HTTP request to retrieve sheets state
|
||||||
* @return {Promise}
|
* @return {Promise}
|
||||||
*/
|
*/
|
||||||
export const getSheetState = async ({ queryKey }): Promise<SheetState> => {
|
export const getSheetState = async (id: string, worksheet: string): Promise<SheetState> => {
|
||||||
const [_key, id, worksheet] = queryKey;
|
|
||||||
console.log(queryKey);
|
|
||||||
|
|
||||||
const res = await axios.post(`${ontimeURL}/sheet-state`, {
|
const res = await axios.post(`${ontimeURL}/sheet-state`, {
|
||||||
id: '',
|
id,
|
||||||
worksheet: '',
|
worksheet,
|
||||||
});
|
});
|
||||||
console.log(res.data);
|
|
||||||
return res.data;
|
return res.data;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -3,10 +3,10 @@ import { useQuery } from '@tanstack/react-query';
|
|||||||
import { SHEET_STATE } from '../api/apiConstants';
|
import { SHEET_STATE } from '../api/apiConstants';
|
||||||
import { getSheetState } from '../api/ontimeApi';
|
import { getSheetState } from '../api/ontimeApi';
|
||||||
|
|
||||||
export default function useSheetState(id, worksheet) {
|
export default function useSheetState(id: string | null, worksheet: string | null) {
|
||||||
const { data, status, isFetching, isError, refetch } = useQuery({
|
const { data, status, isFetching, isError, refetch } = useQuery({
|
||||||
queryKey: [SHEET_STATE, { id, worksheet }],
|
queryKey: [SHEET_STATE, { id, worksheet }],
|
||||||
queryFn: getSheetState,
|
queryFn: () => (id !== null && worksheet !== null ? getSheetState(id, worksheet) : null),
|
||||||
placeholderData: null,
|
placeholderData: null,
|
||||||
enabled: false,
|
enabled: false,
|
||||||
networkMode: 'always',
|
networkMode: 'always',
|
||||||
|
|||||||
@@ -15,14 +15,13 @@ import {
|
|||||||
ModalOverlay,
|
ModalOverlay,
|
||||||
Select,
|
Select,
|
||||||
} from '@chakra-ui/react';
|
} from '@chakra-ui/react';
|
||||||
import { useQuery, useQueryClient } from '@tanstack/react-query';
|
import { useQueryClient } from '@tanstack/react-query';
|
||||||
import { OntimeRundown, ProjectData, UserFields } from 'ontime-types';
|
import { OntimeRundown, ProjectData, UserFields } from 'ontime-types';
|
||||||
|
|
||||||
import { PROJECT_DATA, RUNDOWN, SHEET_STATE, USERFIELDS } from '../../../common/api/apiConstants';
|
import { PROJECT_DATA, RUNDOWN, USERFIELDS } from '../../../common/api/apiConstants';
|
||||||
import { maybeAxiosError } from '../../../common/api/apiUtils';
|
import { maybeAxiosError } from '../../../common/api/apiUtils';
|
||||||
import {
|
import {
|
||||||
getSheetsAuthUrl,
|
getSheetsAuthUrl,
|
||||||
getSheetState,
|
|
||||||
patchData,
|
patchData,
|
||||||
postPreviewSheet,
|
postPreviewSheet,
|
||||||
postPushSheet,
|
postPushSheet,
|
||||||
@@ -51,19 +50,17 @@ export default function SheetsModal(props: SheetsModalProps) {
|
|||||||
const [project, setProject] = useState<ProjectData | null>(null);
|
const [project, setProject] = useState<ProjectData | null>(null);
|
||||||
|
|
||||||
const fileInputRef = useRef<HTMLInputElement>(null);
|
const fileInputRef = useRef<HTMLInputElement>(null);
|
||||||
const sheetid = useRef<HTMLInputElement>(null);
|
const sheetRef = useRef<HTMLInputElement>(null);
|
||||||
const worksheet = useRef<HTMLSelectElement>(null);
|
const worksheetRef = useRef<HTMLSelectElement>(null);
|
||||||
|
const [sheetId, setSheetId] = useState<string | null>(null);
|
||||||
|
const [worksheet, setWorksheet] = useState<string | null>(null);
|
||||||
|
|
||||||
const { data: sheetState, refetch } = useQuery({
|
const { data: sheetState, refetch } = useSheetState(sheetId, worksheet);
|
||||||
queryKey: [SHEET_STATE, sheetid, sheetid],
|
|
||||||
queryFn: getSheetState,
|
|
||||||
placeholderData: null,
|
|
||||||
enabled: false,
|
|
||||||
networkMode: 'always',
|
|
||||||
});
|
|
||||||
|
|
||||||
const onChange = () => {
|
const onChange = () => {
|
||||||
if (sheetid.current?.value && sheetid.current?.value.length > 43) {
|
if (sheetRef.current?.value && sheetRef.current?.value.length > 43 && worksheetRef.current) {
|
||||||
|
setSheetId(sheetRef.current.value);
|
||||||
|
setWorksheet(worksheetRef.current.value);
|
||||||
refetch();
|
refetch();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -113,7 +110,7 @@ export default function SheetsModal(props: SheetsModalProps) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const handlePullData = () => {
|
const handlePullData = () => {
|
||||||
postPreviewSheet(sheetid.current?.value ?? '', worksheet.current?.value ?? '').then((data) => {
|
postPreviewSheet(sheetRef.current?.value ?? '', worksheetRef.current?.value ?? '').then((data) => {
|
||||||
setProject(data.project);
|
setProject(data.project);
|
||||||
setRundown(data.rundown);
|
setRundown(data.rundown);
|
||||||
setUserFields(data.userFields);
|
setUserFields(data.userFields);
|
||||||
@@ -121,7 +118,7 @@ export default function SheetsModal(props: SheetsModalProps) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const handlePushData = () => {
|
const handlePushData = () => {
|
||||||
postPushSheet(sheetid.current?.value ?? '', worksheet.current?.value ?? '');
|
postPushSheet(sheetRef.current?.value ?? '', worksheetRef.current?.value ?? '');
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleFinalise = async () => {
|
const handleFinalise = async () => {
|
||||||
@@ -214,7 +211,7 @@ export default function SheetsModal(props: SheetsModalProps) {
|
|||||||
Sheet ID
|
Sheet ID
|
||||||
<Input
|
<Input
|
||||||
type='text'
|
type='text'
|
||||||
ref={sheetid}
|
ref={sheetRef}
|
||||||
id='sheetid'
|
id='sheetid'
|
||||||
size='sm'
|
size='sm'
|
||||||
onChange={onChange}
|
onChange={onChange}
|
||||||
@@ -232,7 +229,7 @@ export default function SheetsModal(props: SheetsModalProps) {
|
|||||||
>
|
>
|
||||||
<label htmlFor='worksheet'>
|
<label htmlFor='worksheet'>
|
||||||
Worksheet
|
Worksheet
|
||||||
<Select ref={worksheet} size='sm' id='worksheet' disabled={!sheetState?.worksheetOptions}>
|
<Select ref={worksheetRef} size='sm' id='worksheet' disabled={!sheetState?.worksheetOptions}>
|
||||||
{sheetState?.worksheetOptions?.map((value) => (
|
{sheetState?.worksheetOptions?.map((value) => (
|
||||||
<option key={value} value={value}>
|
<option key={value} value={value}>
|
||||||
{value}
|
{value}
|
||||||
|
|||||||
Reference in New Issue
Block a user