diff --git a/src/client/actions/metron.actions.tsx b/src/client/actions/metron.actions.tsx index 3d95e5b..d49ca64 100644 --- a/src/client/actions/metron.actions.tsx +++ b/src/client/actions/metron.actions.tsx @@ -8,7 +8,7 @@ export const fetchMetronResource = async (options) => { options, ); console.log(metronResourceResults); - console.log("has more? ", !isNil(metronResourceResults.data.results.next)); + console.log("has more? ", !isNil(metronResourceResults.data.next)); const results = metronResourceResults.data.results.map((result) => { return { label: result.name, diff --git a/src/client/components/ComicDetail/AsyncSelectPaginate/AsyncSelectPaginate.tsx b/src/client/components/ComicDetail/AsyncSelectPaginate/AsyncSelectPaginate.tsx new file mode 100644 index 0000000..d64e609 --- /dev/null +++ b/src/client/components/ComicDetail/AsyncSelectPaginate/AsyncSelectPaginate.tsx @@ -0,0 +1,50 @@ +import React, { ReactElement, useCallback, useState } from "react"; +import PropTypes from "prop-types"; +import { fetchMetronResource } from "../../../actions/metron.actions"; +import Creatable from "react-select/creatable"; +import { withAsyncPaginate } from "react-select-async-paginate"; +const CreatableAsyncPaginate = withAsyncPaginate(Creatable); + +export const AsyncSelectPaginate = (props): ReactElement => { + console.log(props); + const [value, onValueChange] = useState(null); + const [isAddingInProgress, setIsAddingInProgress] = useState(false); + + const mudasir = useCallback((query, loadedOptions, { page }) => { + console.log(page); + return fetchMetronResource({ + method: "GET", + resource: props.metronResource, + query: { + name: query, + page, + }, + }); + }, []); + + return ( + + ); +}; + +AsyncSelectPaginate.propTypes = { + metronResource: PropTypes.string.isRequired, + placeholder: PropTypes.string, + value: PropTypes.object, + onChange: PropTypes.func, +}; + +export default AsyncSelectPaginate; diff --git a/src/client/components/ComicDetail/EditMetadataPanel.tsx b/src/client/components/ComicDetail/EditMetadataPanel.tsx index cf592cb..1e681a7 100644 --- a/src/client/components/ComicDetail/EditMetadataPanel.tsx +++ b/src/client/components/ComicDetail/EditMetadataPanel.tsx @@ -4,10 +4,7 @@ import { Form, Field } from "react-final-form"; import arrayMutators from "final-form-arrays"; import { FieldArray } from "react-final-form-arrays"; import DatePicker from "react-datepicker"; -import Creatable from "react-select/creatable"; -import { fetchMetronResource } from "../../actions/metron.actions"; -import { withAsyncPaginate } from "react-select-async-paginate"; -const CreatableAsyncPaginate = withAsyncPaginate(Creatable); +import AsyncSelectPaginate from "./AsyncSelectPaginate/AsyncSelectPaginate"; import "react-datepicker/dist/react-datepicker.css"; export const EditMetadataPanel = (props): ReactElement => { @@ -17,21 +14,10 @@ export const EditMetadataPanel = (props): ReactElement => { return ; }; const dispatch = useDispatch(); - const [publisherValue, onPublisherValueChange] = useState(null); - const [seriesValue, onSeriesValueChange] = useState(null); - const [isAddingInProgress, setIsAddingInProgress] = useState(false); - const mudasir = useCallback((query, loadedOptions, { page, resource }) => { - console.log(resource); - return fetchMetronResource({ - method: "GET", - resource, - query: { - name: query, - page, - }, - }); - }, []); + const [seriesValue, onSeriesValueChange] = useState(null); + const [creatorValue, onCreatorValueChange] = useState(null); + const [isAddingInProgress, setIsAddingInProgress] = useState(false); return ( <> @@ -134,17 +120,9 @@ export const EditMetadataPanel = (props): ReactElement => {

-

@@ -159,17 +137,9 @@ export const EditMetadataPanel = (props): ReactElement => {

-

@@ -215,17 +185,9 @@ export const EditMetadataPanel = (props): ReactElement => {

-