1
0
mirror of https://github.com/laurent22/joplin.git synced 2025-07-16 00:14:34 +02:00

Mobile: Implement plugin screen redesign (#10465)

This commit is contained in:
Henry Heino
2024-06-04 01:57:52 -07:00
committed by GitHub
parent 19f0b667b1
commit 06f42e8246
39 changed files with 1460 additions and 633 deletions

View File

@ -0,0 +1,39 @@
import { PluginSettings } from '@joplin/lib/services/plugins/PluginService';
import { useMemo } from 'react';
export enum UpdateState {
Idle = 1,
CanUpdate = 2,
Updating = 3,
HasBeenUpdated = 4,
}
interface Props {
pluginId: string;
pluginSettings: PluginSettings;
updatingPluginIds: Record<string, boolean>;
updatablePluginIds: Record<string, boolean>;
}
const useUpdateState = ({ pluginId, pluginSettings, updatablePluginIds, updatingPluginIds }: Props) => {
return useMemo(() => {
const settings = pluginSettings[pluginId];
// Uninstalled
if (!settings) return UpdateState.Idle;
if (settings.hasBeenUpdated) {
return UpdateState.HasBeenUpdated;
}
if (updatingPluginIds[pluginId]) {
return UpdateState.Updating;
}
if (updatablePluginIds[pluginId]) {
return UpdateState.CanUpdate;
}
return UpdateState.Idle;
}, [pluginSettings, updatingPluginIds, pluginId, updatablePluginIds]);
};
export default useUpdateState;