Update extension list after removing an obsolete extension (#579)
The removed extension was never removed from the cached list
This commit is contained in:
@@ -110,13 +110,13 @@ export function ExtensionCard(props: IProps) {
|
|||||||
setInstalledState(state);
|
setInstalledState(state);
|
||||||
switch (action) {
|
switch (action) {
|
||||||
case ExtensionAction.INSTALL:
|
case ExtensionAction.INSTALL:
|
||||||
await requestManager.updateExtension(pkgName, { install: true }).response;
|
await requestManager.updateExtension(pkgName, { install: true, isObsolete }).response;
|
||||||
break;
|
break;
|
||||||
case ExtensionAction.UNINSTALL:
|
case ExtensionAction.UNINSTALL:
|
||||||
await requestManager.updateExtension(pkgName, { uninstall: true }).response;
|
await requestManager.updateExtension(pkgName, { uninstall: true, isObsolete }).response;
|
||||||
break;
|
break;
|
||||||
case ExtensionAction.UPDATE:
|
case ExtensionAction.UPDATE:
|
||||||
await requestManager.updateExtension(pkgName, { update: true }).response;
|
await requestManager.updateExtension(pkgName, { update: true, isObsolete }).response;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw new Error(`Unexpected ExtensionAction "${action}"`);
|
throw new Error(`Unexpected ExtensionAction "${action}"`);
|
||||||
|
|||||||
@@ -1015,7 +1015,7 @@ export class RequestManager {
|
|||||||
|
|
||||||
public updateExtension(
|
public updateExtension(
|
||||||
id: string,
|
id: string,
|
||||||
patch: UpdateExtensionPatchInput,
|
{ isObsolete = false, ...patch }: UpdateExtensionPatchInput & { isObsolete?: boolean },
|
||||||
options?: MutationOptions<UpdateExtensionMutation, UpdateExtensionMutationVariables>,
|
options?: MutationOptions<UpdateExtensionMutation, UpdateExtensionMutationVariables>,
|
||||||
): AbortableApolloMutationResponse<UpdateExtensionMutation> {
|
): AbortableApolloMutationResponse<UpdateExtensionMutation> {
|
||||||
const result = this.doRequest<UpdateExtensionMutation, UpdateExtensionMutationVariables>(
|
const result = this.doRequest<UpdateExtensionMutation, UpdateExtensionMutationVariables>(
|
||||||
@@ -1042,18 +1042,22 @@ export class RequestManager {
|
|||||||
...cachedExtensions.data,
|
...cachedExtensions.data,
|
||||||
fetchExtensions: {
|
fetchExtensions: {
|
||||||
...cachedExtensions.data.fetchExtensions,
|
...cachedExtensions.data.fetchExtensions,
|
||||||
extensions: cachedExtensions.data.fetchExtensions.extensions.map((extension) => {
|
extensions: cachedExtensions.data.fetchExtensions.extensions
|
||||||
const isUpdatedExtension =
|
.filter((extension) => {
|
||||||
extension.apkName === response.data?.updateExtension.extension?.apkName;
|
const isUpdatedExtension = id === extension.pkgName;
|
||||||
if (!isUpdatedExtension) {
|
return isUpdatedExtension && !isObsolete;
|
||||||
return extension;
|
})
|
||||||
}
|
.map((extension) => {
|
||||||
|
const isUpdatedExtension = id === extension.pkgName;
|
||||||
|
if (!isUpdatedExtension) {
|
||||||
|
return extension;
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...extension,
|
...extension,
|
||||||
...response.data?.updateExtension.extension,
|
...response.data?.updateExtension.extension,
|
||||||
};
|
};
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user