mirror of
https://github.com/cpvalente/ontime.git
synced 2026-09-10 00:29:41 +00:00
e937af62b1
* chore: upgrade relevant deps * fix: electron app to tray * chore: cleanup dictionary * feat: handle several messages in a event * ux: disable irrelevant buttons in browser * feat: parse and validate subscriptions * feat: create UI for OSC Integration * fix: cleanup logger behaviour * feat: allow OSC settings to be changed at runtime
32 lines
1.1 KiB
TypeScript
32 lines
1.1 KiB
TypeScript
import { useMutation, useQuery } from '@tanstack/react-query';
|
|
import { OSCSettings } from 'ontime-types';
|
|
|
|
import { queryRefetchIntervalSlow } from '../../ontimeConfig';
|
|
import { OSC_SETTINGS } from '../api/apiConstants';
|
|
import { getOSC, postOSC } from '../api/ontimeApi';
|
|
import { oscPlaceholderSettings } from '../models/OscSettings';
|
|
import { ontimeQueryClient } from '../queryClient';
|
|
|
|
export default function useOscSettings() {
|
|
const { data, status, isError, refetch } = useQuery({
|
|
queryKey: OSC_SETTINGS,
|
|
queryFn: getOSC,
|
|
placeholderData: oscPlaceholderSettings,
|
|
retry: 5,
|
|
retryDelay: (attempt: number) => attempt * 2500,
|
|
refetchInterval: queryRefetchIntervalSlow,
|
|
networkMode: 'always',
|
|
});
|
|
|
|
return { data: data! as unknown as OSCSettings, status, isError, refetch };
|
|
}
|
|
|
|
export function useOscSettingsMutation() {
|
|
const { isLoading, mutateAsync } = useMutation({
|
|
mutationFn: postOSC,
|
|
onSuccess: (res) => ontimeQueryClient.setQueryData(OSC_SETTINGS, res.data),
|
|
onSettled: () => ontimeQueryClient.invalidateQueries({ queryKey: OSC_SETTINGS }),
|
|
});
|
|
return { isLoading, mutateAsync };
|
|
}
|