import { useAPIClient, useCompile } from '@nocobase/client'; import { useBoolean } from 'ahooks'; import { Button, Card, Form, Input, Tabs, message } from 'antd'; import React, { useEffect, useMemo } from 'react'; import { MapTypes } from '../constants'; import { MapConfigurationResourceKey, getSSKey, useMapConfiguration } from '../hooks'; import { useMapTranslation } from '../locale'; const AMapConfiguration = ({ type }) => { const { t } = useMapTranslation(); const [isDisabled, disableAction] = useBoolean(false); const apiClient = useAPIClient(); const [form] = Form.useForm(); const data = useMapConfiguration(type); useEffect(() => { if (data) { form.setFieldsValue(data); disableAction.toggle(); } }, [data]); const resource = useMemo(() => { return apiClient.resource(MapConfigurationResourceKey); }, [apiClient]); const onSubmit = (values) => { resource .set({ ...values, type, }) .then((res) => { sessionStorage.removeItem(getSSKey(type)); message.success(t('Saved successfully')); }) .catch((err) => { message.success(t('Saved failed')); }); }; return (
{isDisabled ? ( ) : ( )}
); }; const components = { amap: AMapConfiguration, google: () =>
Coming soon
, }; const tabList = MapTypes.map((item) => { return { ...item, component: components[item.value], }; }); const Configuration = () => { const compile = useCompile(); return ( { return { key: tab.value, label: compile(tab.label), children: , }; })} /> ); }; export default Configuration;