diff --git a/app/views/registrations/edit.html.erb b/app/views/registrations/edit.html.erb index 96e85a7c6b8..f4885ebe035 100644 --- a/app/views/registrations/edit.html.erb +++ b/app/views/registrations/edit.html.erb @@ -1,5 +1,5 @@ <% provide(:title, t('registrations.edit_registration.title', person: @user.person&.name || @user.name, comp: @competition.name)) %> <%= render layout: 'nav' do %> - <%= react_component('RegistrationsV2/RegistrationEdit', { competitionInfo: @competition.to_competition_info , + <%= react_component('RegistrationsV2/RegistrationEdit', { competitionId: @competition.id , user: @user }) %> <% end %> diff --git a/app/webpacker/components/RegistrationsV2/RegistrationAdministration/RegistrationAdministrationList.jsx b/app/webpacker/components/RegistrationsV2/RegistrationAdministration/RegistrationAdministrationList.jsx index 1897c4ed0aa..3e158f74943 100644 --- a/app/webpacker/components/RegistrationsV2/RegistrationAdministration/RegistrationAdministrationList.jsx +++ b/app/webpacker/components/RegistrationsV2/RegistrationAdministration/RegistrationAdministrationList.jsx @@ -7,6 +7,7 @@ import { } from 'semantic-ui-react'; import { DateTime } from 'luxon'; import { getAllRegistrations } from '../api/registration/get/get_registrations'; +import getCompetitionInfo from '../api/competition/get_competition_info'; import createSortReducer from '../reducers/sortReducer'; import RegistrationActions from './RegistrationActions'; import { setMessage } from '../Register/RegistrationMessage'; @@ -115,7 +116,28 @@ const columnReducer = (state, action) => { return state; }; -export default function RegistrationAdministrationList({ competitionInfo }) { +export default function RegistrationAdministrationList({ competitionId }) { + const { + isLoading: isCompetitionInfoLoading, + data: competitionInfo, + refetchCompetitionInfo, + } = useQuery({ + queryKey: ['competitionInfo', competitionId], + queryFn: () => getCompetitionInfo(competitionId), + refetchOnWindowFocus: false, + refetchOnReconnect: false, + staleTime: Infinity, + refetchOnMount: 'always', + retry: false, + onError: (err) => { + const { errorCode } = err; + dispatchStore(setMessage( + `competitions.errors.cant_load_competition_info`, + 'negative', + )); + }, + }); + const [expandedColumns, dispatchColumns] = useReducer( columnReducer, initialExpandedColumns, @@ -127,10 +149,6 @@ export default function RegistrationAdministrationList({ competitionInfo }) { const actionsRef = useRef(); - const [autoAcceptEnabled, setAutoAcceptEnabled] = useState( - competitionInfo.auto_accept_registrations, - ); - const [state, dispatchSort] = useReducer(sortReducer, { sortColumn: competitionInfo['using_payment_integrations?'] ? 'paid_on_with_registered_on_fallback' @@ -171,9 +189,9 @@ export default function RegistrationAdministrationList({ competitionInfo }) { 'negative', )); }, - onSuccess: () => { + onSuccess: async () => { dispatchStore(setMessage('competitions.registration_v2.auto_accept.disabled', 'positive')); - setAutoAcceptEnabled(false); + await refetchCompetitionInfo(); }, }); diff --git a/app/webpacker/components/RegistrationsV2/RegistrationAdministration/index.jsx b/app/webpacker/components/RegistrationsV2/RegistrationAdministration/index.jsx index 33a29ba9c12..d1862be3bf4 100644 --- a/app/webpacker/components/RegistrationsV2/RegistrationAdministration/index.jsx +++ b/app/webpacker/components/RegistrationsV2/RegistrationAdministration/index.jsx @@ -6,7 +6,7 @@ import messageReducer from '../reducers/messageReducer'; import StoreProvider from '../../../lib/providers/StoreProvider'; import WCAQueryClientProvider from '../../../lib/providers/WCAQueryClientProvider'; -export default function RegistrationEdit({ competitionInfo }) { +export default function RegistrationEdit({ competitionId }) { const ref = useRef(); return (