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 => {