Skip to content
Snippets Groups Projects

fix(plugin): enter should load plugin from url (MIN-309)

4 files
+ 61
2
Compare changes
  • Side-by-side
  • Inline
Files
4
@@ -5,8 +5,9 @@ import { setCurrentDrawerPluginHash } from '@/redux/plugins/plugins.slice';
import { PluginsManager } from '@/services/pluginsManager';
import { showToast } from '@/utils/showToast';
import axios from 'axios';
import { ChangeEvent, useMemo, useState } from 'react';
import { ChangeEvent, useMemo, useState, KeyboardEvent } from 'react';
import { getErrorMessage } from '@/utils/getErrorMessage';
import { ENTER_KEY_CODE } from '@/constants/common';
import { PLUGIN_LOADING_ERROR_PREFIX } from '../../AvailablePluginsDrawer.constants';
type UseLoadPluginReturnType = {
@@ -14,6 +15,7 @@ type UseLoadPluginReturnType = {
handleLoadPlugin: () => Promise<void>;
isPending: boolean;
pluginUrl: string;
handleKeyPress: (event: KeyboardEvent<HTMLInputElement>) => Promise<void>;
};
export const useLoadPluginFromUrl = (): UseLoadPluginReturnType => {
@@ -64,6 +66,13 @@ export const useLoadPluginFromUrl = (): UseLoadPluginReturnType => {
setIsLoading(false);
}
};
const handleKeyPress = async (event: KeyboardEvent<HTMLInputElement>): Promise<void> => {
if (event.code === ENTER_KEY_CODE && !isPending) {
await handleLoadPlugin();
}
};
const handleChangePluginUrl = (event: ChangeEvent<HTMLInputElement>): void => {
setPluginUrl(event.target.value);
};
@@ -71,6 +80,7 @@ export const useLoadPluginFromUrl = (): UseLoadPluginReturnType => {
return {
handleChangePluginUrl,
handleLoadPlugin,
handleKeyPress,
isPending,
pluginUrl,
};
Loading