update AddonContextMenu component for new addon subroutes

pull/67/head
dperolio 3 years ago
parent 786e4e1ae1
commit f9e65f2f8b
No known key found for this signature in database
GPG Key ID: 3E9BBAA710D3DDCE

@ -1,7 +1,7 @@
import { ContextMenu, LazyImage } from '@vizality/components';
import { ContextMenu } from '@vizality/components';
import { toPlural } from '@vizality/util/string';
import { contextMenu } from '@vizality/webpack';
import React, { memo, useState } from 'react';
import React, { memo } from 'react';
import { Messages } from '@vizality/i18n';
const { closeContextMenu } = contextMenu;
@ -15,38 +15,44 @@ const { closeContextMenu } = contextMenu;
* @returns {React.MemoExoticComponent<function(): React.ReactElement>}
*/
export default memo(({ addonId, type }) => {
const [ isEnabled, setEnabled ] = useState(vizality.manager[toPlural(type)].isEnabled(addonId));
const [ isInstalled, setInstalled ] = useState(vizality.manager[toPlural(type)].isInstalled(addonId));
const isEnabled = vizality.manager[toPlural(type)].isEnabled(addonId);
const isInstalled = vizality.manager[toPlural(type)].isInstalled(addonId);
const hasSettings = vizality.manager[toPlural(type)].hasSettings(addonId);
const hasScreenshots = false;
const hasChangelog = false;
const hasScreenshots = vizality.manager[toPlural(type)].hasScreenshots(addonId);
const hasChangelog = vizality.manager[toPlural(type)].hasChangelog(addonId);
return (
<ContextMenu.Menu navId='vz-addon-context-menu' onClose={closeContextMenu}>
<ContextMenu.Item
id='overview'
label='Overview'
action={() => vizality.api.routes.navigateTo(`${toPlural(type)}/${addonId}`)}
action={() => vizality.api.routes.navigateTo(`${type}/${addonId}`)}
/>
{hasScreenshots && (
<ContextMenu.Item
id='screenshots'
label='Screenshots'
action={() => vizality.api.routes.navigateTo(`${toPlural(type)}/${addonId}/screenshots`)}
/>
)}
{hasChangelog && (
<ContextMenu.Item
id='changelog'
label='Changelog'
action={() => vizality.api.routes.navigateTo(`${toPlural(type)}/${addonId}/changelog`)}
action={() => vizality.api.routes.navigateTo(`${type}/${addonId}/screenshots`)}
/>
)}
{isInstalled && hasSettings && (
<ContextMenu.Item
id='settings'
label='Settings'
action={() => vizality.api.routes.navigateTo(`${toPlural(type)}/${addonId}/settings`)}
action={() => vizality.api.routes.navigateTo(`${type}/${addonId}/settings`)}
/>
)}
<ContextMenu.Item
id='reviews'
label='Reviews'
action={() => vizality.api.routes.navigateTo(`${type}/${addonId}/reviews`)}
disabled
/>
{hasChangelog && (
<ContextMenu.Item
id='changelog'
label='Changelog'
action={() => vizality.api.routes.navigateTo(`${type}/${addonId}/changelog`)}
/>
)}
<ContextMenu.Separator />
@ -55,19 +61,12 @@ export default memo(({ addonId, type }) => {
? <ContextMenu.Item
id='disable'
label='Disable'
color={ContextMenu.Item.Colors.DANGER}
action={async () => {
await vizality.manager[toPlural(type)].disable(addonId);
setEnabled(false);
}}
action={async () => vizality.manager[toPlural(type)].disable(addonId)}
/>
: <ContextMenu.Item
id='enable'
label='Enable'
action={async () => {
await vizality.manager[toPlural(type)].enable(addonId);
setEnabled(true);
}}
action={async () => vizality.manager[toPlural(type)].enable(addonId)}
/>
)}
{isInstalled
@ -75,19 +74,13 @@ export default memo(({ addonId, type }) => {
id='uninstall'
label='Uninstall'
color={ContextMenu.Item.Colors.DANGER}
action={async () => {
await vizality.manager[toPlural(type)].uninstall(addonId);
setInstalled(false);
}}
action={async () => vizality.manager[toPlural(type)].uninstall(addonId)}
/>
: <ContextMenu.Item
id='install'
label='Install'
color={ContextMenu.Item.Colors.GREEN}
action={async () => {
await vizality.manager[toPlural(type)].install(addonId);
setInstalled(true);
}}
action={async () => vizality.manager[toPlural(type)].install(addonId)}
/>
}
<ContextMenu.Separator />

Loading…
Cancel
Save