Skip to content

Commit

Permalink
immer
Browse files Browse the repository at this point in the history
  • Loading branch information
tdurnford committed Sep 18, 2020
1 parent 9938541 commit f11c1d3
Showing 1 changed file with 31 additions and 24 deletions.
55 changes: 31 additions & 24 deletions Composer/packages/client/src/recoilModel/dispatchers/skill.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

import { CallbackInterface, useRecoilCallback } from 'recoil';
import { SkillManifest, SkillSetting } from '@bfc/shared';
import cloneDeep from 'lodash/cloneDeep';

import {
skillManifestsState,
Expand All @@ -14,6 +13,7 @@ import {
settingsState,
} from './../atoms/botState';
import { setSettingState } from './setting';
import produce from 'immer';

export const skillDispatcher = () => {
const createSkillManifest = ({ set }, { id, content, projectId }) => {
Expand Down Expand Up @@ -45,13 +45,13 @@ export const skillDispatcher = () => {
const { func: onAddSkillDialogComplete } = await snapshot.getPromise(onAddSkillDialogCompleteState(projectId));
const settings = await snapshot.getPromise(settingsState(projectId));

setSettingState(callbackHelpers, projectId, {
...settings,
skill: {
...settings.skill,
[skill.name]: skill,
},
});
setSettingState(
callbackHelpers,
projectId,
produce(settings, (updateSettings) => {
updateSettings.skill = { ...(updateSettings.skill || {}), [skill.name]: skill };
})
);

if (typeof onAddSkillDialogComplete === 'function') {
onAddSkillDialogComplete(skill || null);
Expand All @@ -66,10 +66,14 @@ export const skillDispatcher = () => {
(callbackHelpers: CallbackInterface) => async (projectId: string, key: string) => {
const { snapshot } = callbackHelpers;
const settings = await snapshot.getPromise(settingsState(projectId));
const newSettings = cloneDeep(settings);
delete newSettings.skill?.[key];

setSettingState(callbackHelpers, projectId, newSettings);
setSettingState(
callbackHelpers,
projectId,
produce(settings, (updateSettings) => {
delete updateSettings.skill?.[key];
})
);
}
);

Expand All @@ -81,19 +85,22 @@ export const skillDispatcher = () => {
) => {
const { snapshot } = callbackHelpers;
const settings = await snapshot.getPromise(settingsState(projectId));
const newSettings = cloneDeep(settings);
setSettingState(callbackHelpers, projectId, {
...newSettings,
skill: {
...newSettings?.skill,
[key]: {
endpointUrl,
manifestUrl,
msAppId,
name,
},
},
});

setSettingState(
callbackHelpers,
projectId,
produce(settings, (updateSettings) => {
updateSettings.skill = {
...(updateSettings.skill || {}),
[key]: {
endpointUrl,
manifestUrl,
msAppId,
name,
},
};
})
);
}
);

Expand Down

0 comments on commit f11c1d3

Please sign in to comment.