| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- 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;
|