### What problem does this PR solve? feat: Add component DeepL #1739 ### Type of change - [x] New Feature (non-breaking change which adds functionality)
75 lines
1.9 KiB
TypeScript
75 lines
1.9 KiB
TypeScript
import TopNItem from '@/components/top-n-item';
|
|
import { useTranslate } from '@/hooks/common-hooks';
|
|
import { DatePicker, DatePickerProps, Form, Select, Switch } from 'antd';
|
|
import dayjs from 'dayjs';
|
|
import { useCallback, useMemo } from 'react';
|
|
import { useBuildSortOptions } from '../form-hooks';
|
|
import { IOperatorForm } from '../interface';
|
|
|
|
const YearPicker = ({
|
|
onChange,
|
|
value,
|
|
}: {
|
|
onChange?: (val: number | undefined) => void;
|
|
value?: number | undefined;
|
|
}) => {
|
|
const handleChange: DatePickerProps['onChange'] = useCallback(
|
|
(val: any) => {
|
|
const nextVal = val?.format('YYYY');
|
|
onChange?.(nextVal ? Number(nextVal) : undefined);
|
|
},
|
|
[onChange],
|
|
);
|
|
// The year needs to be converted into a number and saved to the backend
|
|
const nextValue = useMemo(() => {
|
|
if (value) {
|
|
return dayjs(value.toString());
|
|
}
|
|
return undefined;
|
|
}, [value]);
|
|
|
|
return <DatePicker picker="year" onChange={handleChange} value={nextValue} />;
|
|
};
|
|
|
|
const GoogleScholarForm = ({ onValuesChange, form }: IOperatorForm) => {
|
|
const { t } = useTranslate('flow');
|
|
|
|
const options = useBuildSortOptions();
|
|
|
|
return (
|
|
<Form
|
|
name="basic"
|
|
labelCol={{ span: 6 }}
|
|
wrapperCol={{ span: 18 }}
|
|
autoComplete="off"
|
|
form={form}
|
|
onValuesChange={onValuesChange}
|
|
>
|
|
<TopNItem initialValue={5}></TopNItem>
|
|
<Form.Item
|
|
label={t('sortBy')}
|
|
name={'sort_by'}
|
|
initialValue={'relevance'}
|
|
>
|
|
<Select options={options}></Select>
|
|
</Form.Item>
|
|
<Form.Item label={t('yearLow')} name={'year_low'}>
|
|
<YearPicker />
|
|
</Form.Item>
|
|
<Form.Item label={t('yearHigh')} name={'year_high'}>
|
|
<YearPicker />
|
|
</Form.Item>
|
|
<Form.Item
|
|
label={t('patents')}
|
|
name={'patents'}
|
|
valuePropName="checked"
|
|
initialValue={true}
|
|
>
|
|
<Switch></Switch>
|
|
</Form.Item>
|
|
</Form>
|
|
);
|
|
};
|
|
|
|
export default GoogleScholarForm;
|