1

I am trying to surface the results of an api query to gridjs in a react app. I need some help in formatting the response from an openapi generated route.

This works:

function App() {
  const [items, setItems] = useState<any[]>([]);
  const getTheItems = async (filters: string,includeItemTypes:string, limit:number,recursive:boolean) => {
    try {
      const fetchedItems = await itemsServiceApi.getItems(filters, includeItemTypes, limit, recursive);
      const obj = JSON.parse(JSON.stringify(fetchedItems.data));
      console.log(obj.Items);
      setItems(obj.Items);
    } catch (error) {
      console.warn(error)
    }
  };

  useEffect(() => {
    getTheItems("IsNotFolder","Movies",20,true);
  }, []);

  return (
    <div className="App">
    <header className="App-header">
      <img src={logo} className="App-logo" alt="logo" />
      {items.map((item, index) => (
      <div key={index} id={item.Id}> {item.Name} <br />
      </div>
      ))}
    </header>
  </div>
  );
};
export default App;

This is what I want to accomplish:

function App() {
  const [items, setItems] = useState<any[]>([]);
  const getTheItems = async (filters: string,includeItemTypes:string, limit:number,recursive:boolean) => {
    try {
      const fetchedItems = await itemsServiceApi.getItems(filters, includeItemTypes, limit, recursive);
      const obj = JSON.parse(JSON.stringify(fetchedItems.data));
      console.log(obj.Items);
      setItems(obj.Items);
    } catch (error) {
      console.warn(error)
    }
  };

  useEffect(() => {
    getTheItems("IsNotFolder","Movies",20,true);
  }, []);

  return (
    <div>
      <Grid
        data={items}
        columns={['Name', 'Id']}
        pagination={{
          limit: 5,
        }}
      />
    </div>
  );
};
export default App;

Currently my items array returns like this:

[
    {
        "Name": "The Shepherd",
        "ServerId": "3ac3356dc26a430eabc7ab193ad16189",
        "Id": "10092347",
        "ChannelId": "9476798",
        "RunTimeTicks": 72000000000,
        "Type": "Program",
        "ImageTags": {
            "Primary": "77c5cf117131ead7a9e31012ce673d0c"
        },
        "BackdropImageTags": [],
        "MediaType": "Video",
        "StartDate": "0001-01-01T00:00:00.0000000Z"
    },
    {
        "Name": "Olympia",
        "ServerId": "3ac3356dc26a430eabc7ab193ad16189",
        "Id": "10100423",
        "ChannelId": "9476793",
        "RunTimeTicks": 36000000000,
        "Type": "Program",
        "ImageTags": {
            "Primary": "3e59d6854f930ea9bb21b2046e46426f"
        },
        "BackdropImageTags": [],
        "MediaType": "Video",
        "StartDate": "0001-01-01T00:00:00.0000000Z"
    }
]

....................................................................................................................................................................................................................................................................................

hooray4rob
  • 11
  • 3

0 Answers0