Skip to content

Commit 03a1225

Browse files
committed
fix(APP-3384): Fix action encoding for OSx updates
1 parent f94c066 commit 03a1225

File tree

5 files changed

+42
-61
lines changed

5 files changed

+42
-61
lines changed

src/containers/createProposalDialog/createProposalDialog.tsx

Lines changed: 32 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {ModalProps} from '@aragon/ods-old';
22
import {TransactionDialog} from 'containers/transactionDialog';
3-
import React, {useState} from 'react';
3+
import React, {useEffect, useState} from 'react';
44
import {CreateProposalDialogSteps} from './createProposalDialogSteps';
55
import {useTranslation} from 'react-i18next';
66
import {useDaoDetailsQuery} from 'hooks/useDaoDetails';
@@ -29,6 +29,7 @@ import {toDisplayEns} from 'utils/library';
2929
import {CreateProposalDialogGaslessSteps} from './createProposalDialogGaslessSteps';
3030
import {useCreateVocdoniProposalTransaction} from './hooks/useCreateVocdoniProposalTransaction';
3131
import {ICreateProposalParams} from './utils/createProposalUtils';
32+
import {useProtocolVersion} from 'services/aragon-sdk/queries/use-protocol-version';
3233

3334
export interface ICreateProposalDialogProps extends ModalProps {}
3435

@@ -59,18 +60,11 @@ export const CreateProposalDialog: React.FC<
5960
const pluginClient = usePluginClient(pluginType);
6061
const {data: votingSettings} = useVotingSettings({pluginAddress, pluginType});
6162

63+
const {data: versions} = useProtocolVersion(daoDetails?.address as string);
64+
6265
const [metadataCid, setMetadataCid] = useState<string>();
6366

64-
const {data: encodedActions} = useEncodeActions({
65-
actions,
66-
network,
67-
pluginClient,
68-
votingSettings,
69-
client,
70-
pluginAddress,
71-
t,
72-
daoAddress: daoDetails?.address,
73-
});
67+
const {data: encodedActions, mutate: encodeActions} = useEncodeActions();
7468

7569
const createProposalParams = createProposalUtils.buildCreateProposalParams({
7670
values: formValues as CreateProposalFormData,
@@ -132,6 +126,33 @@ export const CreateProposalDialog: React.FC<
132126
onClose?.();
133127
};
134128

129+
useEffect(() => {
130+
if (client && pluginClient && pluginAddress && daoDetails) {
131+
encodeActions({
132+
actions,
133+
network,
134+
pluginClient,
135+
votingSettings,
136+
client,
137+
pluginAddress,
138+
t,
139+
daoAddress: daoDetails?.address,
140+
versions,
141+
});
142+
}
143+
}, [
144+
client,
145+
pluginClient,
146+
encodeActions,
147+
actions,
148+
network,
149+
votingSettings,
150+
pluginAddress,
151+
t,
152+
daoDetails,
153+
versions,
154+
]);
155+
135156
return (
136157
<TransactionDialog
137158
title={t('createProposalDialog.title')}

src/services/actionEncoder/actionEncoderService.api.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ import {SupportedNetworks} from 'utils/constants';
55
import {Action, SupportedVotingSettings} from 'utils/types';
66

77
export interface IEncodeActionParams {
8-
client?: Client;
9-
pluginClient?: PluginClient;
10-
pluginAddress?: string;
8+
client: Client;
9+
pluginClient: PluginClient;
10+
pluginAddress: string;
1111
actions: Action[];
1212
t: TFunction;
1313
network: SupportedNetworks;
14-
daoAddress?: string;
14+
daoAddress: string;
1515
versions?: [number, number, number];
1616
votingSettings?: SupportedVotingSettings | null;
1717
}

src/services/actionEncoder/actionEncoderService.ts

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,7 @@ import {
3030
} from '@aragon/osx-commons-configs';
3131

3232
class ActionEncoderService {
33-
encodeActions = async (
34-
params: IEncodeActionParams
35-
): Promise<DaoAction[] | null> => {
33+
encodeActions = async (params: IEncodeActionParams): Promise<DaoAction[]> => {
3634
const {
3735
actions,
3836
network,
@@ -45,15 +43,6 @@ class ActionEncoderService {
4543
t,
4644
} = params;
4745

48-
if (
49-
client == null ||
50-
pluginClient == null ||
51-
pluginAddress == null ||
52-
daoAddress == null
53-
) {
54-
return null;
55-
}
56-
5746
const validActions = getNonEmptyActions(
5847
actions,
5948
isMultisigVotingSettings(votingSettings) ? votingSettings : undefined,
Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
1-
import {UseQueryOptions, useQuery} from '@tanstack/react-query';
2-
import {actionEncoderQueryKeys} from '../queryKeys';
1+
import {UseMutationOptions, useMutation} from '@tanstack/react-query';
32
import {IEncodeActionParams} from '../actionEncoderService.api';
43
import {actionEncoderService} from '../actionEncoderService';
54
import {DaoAction} from '@aragon/sdk-client-common';
65

76
export const useEncodeActions = (
8-
params: IEncodeActionParams,
9-
options?: Omit<UseQueryOptions<DaoAction[] | null>, 'queryKey'>
7+
options?: UseMutationOptions<DaoAction[], unknown, IEncodeActionParams>
108
) => {
11-
return useQuery({
12-
queryKey: actionEncoderQueryKeys.encodeActions(params),
13-
queryFn: () => actionEncoderService.encodeActions(params),
9+
return useMutation({
10+
mutationFn: (params: IEncodeActionParams) =>
11+
actionEncoderService.encodeActions(params),
1412
...options,
1513
});
1614
};

src/services/actionEncoder/queryKeys.ts

Lines changed: 0 additions & 27 deletions
This file was deleted.

0 commit comments

Comments
 (0)