// @ts-nocheck
import React from 'react';
import { ProgressBar, Intent } from '@blueprintjs/core';
import * as R from 'ramda';
import { x } from '@xstyled/emotion';
import { css } from '@emotion/css';
import { useIsDarkMode } from '@/hooks/useDarkMode';
import { useJob, useCurrentOrganization } from '@/hooks/query';
import { FormattedMessage as T } from '@/components';
import withOrganizationActions from '@/containers/Organization/withOrganizationActions';
import withCurrentOrganization from '@/containers/Organization/withCurrentOrganization';
import withOrganization from '../Organization/withOrganization';
/**
* Setup initializing step form.
*/
function SetupInitializingForm({
setOrganizationSetupCompleted,
organization,
}) {
const { refetch, isSuccess } = useCurrentOrganization({ enabled: false });
// Job done state.
const [isJobDone, setIsJobDone] = React.useState(false);
const {
data: { isRunning, isWaiting, isFailed, isCompleted },
isFetching: isJobFetching,
} = useJob(organization?.build_job_id, {
refetchInterval: 2000,
enabled: !!organization?.build_job_id,
});
React.useEffect(() => {
if (isCompleted) {
refetch();
setIsJobDone(true);
}
}, [refetch, isCompleted, setOrganizationSetupCompleted]);
React.useEffect(() => {
if (isSuccess && isJobDone) {
setOrganizationSetupCompleted(true);
setIsJobDone(false);
}
}, [setOrganizationSetupCompleted, isJobDone, isSuccess]);
return (
{isFailed ? (
) : isRunning || isWaiting || isJobFetching ? (
) : isCompleted ? (
) : (
)}
);
}
export default R.compose(
withOrganizationActions,
withCurrentOrganization(({ organizationTenantId }) => ({
organizationId: organizationTenantId,
})),
withOrganization(({ organization }) => ({ organization })),
)(SetupInitializingForm);
/**
* State initializing failed state.
*/
function SetupInitializingFailed() {
const isDarkMode = useIsDarkMode();
return (
);
}
/**
* Setup initializing running state.
*/
function SetupInitializingRunning() {
const isDarkMode = useIsDarkMode();
const progressBarStyles = css`
.bp4-progress-bar {
border-radius: 40px;
display: block;
height: 6px;
overflow: hidden;
position: relative;
width: 80%;
margin: 0 auto;
.bp4-progress-meter {
background-color: #809cb3;
}
}
`;
return (
);
}
/**
* Setup initializing completed state.
*/
function SetupInitializingCompleted() {
const isDarkMode = useIsDarkMode();
return (
);
}