Skip to content

Commit 5443b72

Browse files
authored
feat(employment) - exclude files (#719)
* feat(employment) - exclude files * fix paths * fix hooks
1 parent 3e112c9 commit 5443b72

9 files changed

Lines changed: 81 additions & 55 deletions

File tree

src/common/api/employment.ts

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import { getShowEmployment, GetShowEmploymentResponse } from '@/src/client';
2+
import { useClient } from '@/src/context';
3+
import { $TSFixMe } from '@/src/types/remoteFlows';
4+
import { useQuery, UseQueryResult } from '@tanstack/react-query';
5+
import { Client } from '@/src/client/client';
6+
7+
/**
8+
* Hook to retrieve employment details for a specific employment ID.
9+
*
10+
* @param {Object} params - The parameters for the query.
11+
* @param {string} params.employmentId - The ID of the employment to fetch details for.
12+
* @returns {UseQueryResult<any, unknown>} - The result of the query, including the employment details.
13+
*/
14+
export const useEmploymentQuery = ({
15+
employmentId,
16+
queryParams,
17+
}: {
18+
employmentId: string;
19+
queryParams?: $TSFixMe; // TODO: we need to generate openapi-ts types but it's broken at the moment
20+
}): UseQueryResult<
21+
GetShowEmploymentResponse['data']['employment'],
22+
unknown
23+
> => {
24+
const { client } = useClient();
25+
return useQuery({
26+
queryKey: ['employment', employmentId],
27+
retry: false,
28+
queryFn: () => {
29+
return getShowEmployment({
30+
client: client as Client,
31+
headers: {
32+
Authorization: ``,
33+
},
34+
path: { employment_id: employmentId },
35+
query: queryParams,
36+
});
37+
},
38+
enabled: !!employmentId,
39+
select: ({ data }) => data?.data?.employment,
40+
});
41+
};

src/common/api/index.ts

Lines changed: 2 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,8 @@
1-
import {
2-
getShowEmployment,
3-
MagicLinkParams,
4-
postGenerateMagicLink,
5-
} from '@/src/client';
1+
import { useMutation } from '@tanstack/react-query';
2+
import { MagicLinkParams, postGenerateMagicLink } from '@/src/client';
63
import { useClient } from '@/src/context';
7-
import { ContractAmendmentParams } from '@/src/flows/ContractAmendment/types';
84

95
import { Client } from '@/src/client/client';
10-
import { useMutation, useQuery } from '@tanstack/react-query';
11-
12-
type UseEmployment = Pick<ContractAmendmentParams, 'employmentId'>;
13-
14-
/**
15-
* Hook to retrieve employment details for a specific employment ID.
16-
*
17-
* @param {Object} params - The parameters for the query.
18-
* @param {string} params.employmentId - The ID of the employment to fetch details for.
19-
* @returns {UseQueryResult<any, unknown>} - The result of the query, including the employment details.
20-
*/
21-
export const useEmploymentQuery = ({ employmentId }: UseEmployment) => {
22-
const { client } = useClient();
23-
return useQuery({
24-
queryKey: ['employment', employmentId],
25-
retry: false,
26-
queryFn: () => {
27-
return getShowEmployment({
28-
client: client as Client,
29-
headers: {
30-
Authorization: ``,
31-
},
32-
path: { employment_id: employmentId },
33-
});
34-
},
35-
enabled: !!employmentId,
36-
select: ({ data }) => data?.data?.employment,
37-
});
38-
};
396

407
export const useMagicLink = () => {
418
const { client } = useClient();

src/components/form/fields/default/RadioGroupFieldDefault.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,10 @@ export const RadioGroupFieldDefault = ({
2525
<FormItem>
2626
<legend>{label}</legend>
2727
{description && (
28-
<FormDescription>
29-
{description} <HelpCenter helpCenter={fieldData.meta?.helpCenter} />
28+
<FormDescription
29+
helpCenter={<HelpCenter helpCenter={fieldData.meta?.helpCenter} />}
30+
>
31+
{description}
3032
</FormDescription>
3133
)}
3234
<FormControl>

src/components/ui/form.tsx

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -131,11 +131,13 @@ const FormControl = React.forwardRef<
131131
FormControl.displayName = 'FormControl';
132132

133133
function FormDescription<T extends React.ElementType = 'p'>({
134+
helpCenter,
134135
className,
135136
children,
136137
as,
137138
...props
138139
}: React.ComponentProps<'p'> & {
140+
helpCenter?: React.ReactNode;
139141
children?: React.ReactNode | (() => React.ReactNode);
140142
as?: T;
141143
} & Omit<React.ComponentPropsWithoutRef<T>, 'children' | 'className'>) {
@@ -144,16 +146,19 @@ function FormDescription<T extends React.ElementType = 'p'>({
144146

145147
if (typeof children === 'string') {
146148
return (
147-
<Component
148-
data-slot='form-description'
149-
id={formDescriptionId}
150-
className={cn('text-base-color text-xs', className)}
151-
dangerouslySetInnerHTML={{
152-
__html: sanitizeHtml(children),
153-
}}
154-
data-sanitized='true'
155-
{...props}
156-
/>
149+
<>
150+
<Component
151+
data-slot='form-description'
152+
id={formDescriptionId}
153+
className={cn('text-base-color text-xs', className)}
154+
dangerouslySetInnerHTML={{
155+
__html: sanitizeHtml(children),
156+
}}
157+
data-sanitized='true'
158+
{...props}
159+
/>
160+
{helpCenter && helpCenter}
161+
</>
157162
);
158163
}
159164

@@ -166,6 +171,7 @@ function FormDescription<T extends React.ElementType = 'p'>({
166171
{...props}
167172
>
168173
{typeof children === 'function' ? children() : children}
174+
{helpCenter && helpCenter}
169175
</Component>
170176
);
171177
}

src/flows/ContractAmendment/hooks.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { parseJSFToValidate } from '@/src/components/form/utils';
1111
import { mutationToPromise } from '@/src/lib/mutations';
1212
import { Client } from '@/src/client/client';
1313
import { createHeadlessForm } from '@/src/common/createHeadlessForm';
14-
import { useEmploymentQuery } from '@/src/common/api';
14+
import { useEmploymentQuery } from '@/src/common/api/employment';
1515
import { useClient } from '@/src/context';
1616
import { ContractAmendmentParams } from './types';
1717
import { useStepState } from '../useStepState';
@@ -130,6 +130,9 @@ export const useContractAmendment = ({
130130
error: errorEmployment,
131131
} = useEmploymentQuery({
132132
employmentId,
133+
queryParams: {
134+
exclude_files: true,
135+
},
133136
});
134137

135138
const {

src/flows/ContractorOnboarding/hooks.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ import {
3333
import {
3434
useCountriesSchemaField,
3535
useCreateEmployment,
36-
useEmployment,
3736
useJSONSchemaForm,
3837
useUpdateEmployment,
3938
} from '@/src/flows/Onboarding/api';
@@ -58,6 +57,7 @@ import {
5857
} from '@/src/flows/ContractorOnboarding/jsfModify';
5958
import { useUploadFile } from '@/src/common/api/files';
6059
import { dataURLtoFile } from '@/src/lib/files';
60+
import { useEmploymentQuery } from '@/src/common/api/employment';
6161

6262
type useContractorOnboardingProps = Omit<
6363
ContractorOnboardingFlowProps,
@@ -135,7 +135,10 @@ export const useContractorOnboarding = ({
135135
data: employment,
136136
isLoading: isLoadingEmployment,
137137
refetch: refetchEmployment,
138-
} = useEmployment(internalEmploymentId);
138+
} = useEmploymentQuery({
139+
employmentId: internalEmploymentId as string,
140+
queryParams: { exclude_files: true },
141+
});
139142

140143
const { status: employmentStatus } = employment || {};
141144

src/flows/Onboarding/hooks.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ import {
3030
useCompany,
3131
useCountriesSchemaField,
3232
useCreateEmployment,
33-
useEmployment,
3433
useJSONSchemaForm,
3534
useUpdateBenefitsOffers,
3635
useUpdateEmployment,
@@ -41,6 +40,7 @@ import { AnnualGrossSalary } from '@/src/flows/Onboarding/components/AnnualGross
4140
import { $TSFixMe, JSFField, JSFFieldset, Meta } from '@/src/types/remoteFlows';
4241
import { EquityPriceDetails } from '@/src/flows/Onboarding/components/EquityPriceDetails';
4342
import { useErrorReporting } from '@/src/components/error-handling/useErrorReporting';
43+
import { useEmploymentQuery } from '@/src/common/api/employment';
4444

4545
type OnboardingHookProps = Omit<OnboardingFlowProps, 'render'>;
4646

@@ -192,7 +192,10 @@ export const useOnboarding = ({
192192
data: employment,
193193
isLoading: isLoadingEmployment,
194194
refetch: refetchEmployment,
195-
} = useEmployment(internalEmploymentId);
195+
} = useEmploymentQuery({
196+
employmentId: internalEmploymentId as string,
197+
queryParams: { exclude_files: true },
198+
});
196199

197200
// if the employment is loaded, country code has not been set yet
198201
// we set the internal country code with the employment country code

src/flows/Termination/hooks.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ import { cn } from '@/src/internals';
3737
import { zendeskArticles } from '@/src/components/shared/zendesk-drawer/utils';
3838
import { PaidTimeOff } from '@/src/flows/Termination/components/PaidTimeOff/PaidTimeOff';
3939
import { PaidTimeOffContainer } from '@/src/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer';
40-
import { useEmploymentQuery } from '@/src/common/api';
40+
import { useEmploymentQuery } from '@/src/common/api/employment';
4141
import { AcknowledgeInformationContainer } from '@/src/flows/Termination/components/AcknowledgeInformation/AcknowledgeInfomationContainer';
4242
import { AcknowledgeInformation } from '@/src/flows/Termination/components/AcknowledgeInformation/AcknowledgeInformation';
4343
import { AcknowledgeInformationFees } from '@/src/flows/Termination/components/AcknowledgeInformation/AcknowledgeInformationFees';
@@ -56,7 +56,7 @@ export const useTermination = ({
5656
useStepState<keyof typeof STEPS, TerminationFormValues>(STEPS);
5757

5858
const { data: employment, isLoading: isLoadingEmployment } =
59-
useEmploymentQuery({ employmentId });
59+
useEmploymentQuery({ employmentId, queryParams: { exclude_files: true } });
6060

6161
const { data: payrollCalendars } = usePayrollCalendars({
6262
query: {

src/index.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,8 @@ export type { ContractPreviewStatementProps } from '@/src/flows/ContractorOnboar
7878

7979
export type * from '@/src/flows/CostCalculator/types';
8080

81-
export { useEmploymentQuery, useMagicLink } from '@/src/common/api';
81+
export { useMagicLink } from '@/src/common/api';
82+
export { useEmploymentQuery } from '@/src/common/api/employment';
8283

8384
export {
8485
useTimeOffQuery,

0 commit comments

Comments
 (0)