diff --git a/src/renderer/components/+preferences/extension-page.tsx b/src/renderer/components/+preferences/extension-page.tsx index 0d87b925ce..c5d31bdd7c 100644 --- a/src/renderer/components/+preferences/extension-page.tsx +++ b/src/renderer/components/+preferences/extension-page.tsx @@ -6,10 +6,10 @@ import styles from "./extension-page.module.scss"; import React, { useEffect, useState } from "react"; -import { Extension, getExtensionById, getReviewsExtensionById, Review } from "./extension-list"; +import type { Extension, Review } from "./extension-list"; import { Spinner } from "../spinner"; import { ExtensionCard } from "./extension-card"; -import { matchPath, Route, RouteProps, Switch, useParams } from "react-router"; +import { matchPath, Route, RouteProps, Switch, useLocation } from "react-router"; import { MarkdownViewer } from "../markdown-viewer"; import { Tab, Tabs } from "../tabs"; import { navigate } from "../../navigation"; @@ -20,17 +20,17 @@ import { Rating } from "@material-ui/lab"; export function ExtensionPage() { const [extension, setExtension] = useState(null); const [description, setDescription] = useState(""); - const [reviews, setReviews] = useState([]); - const { id } = useParams<{ id?: string }>(); const isActive = (route: RouteProps) => !!matchPath(location.pathname, { path: route.path, exact: true }); + const location = useLocation(); + const id = location.search.replace("?id=", ""); useEffect(() => { async function fetchExtension() { - return await getExtensionById(id); - } + const response = await fetch(`http://localhost:65113/api/extensions/${id}/`, { + method: "GET", + }); - async function fetchReviews() { - return await getReviewsExtensionById(id); + return await response.json(); } async function loadData() { @@ -38,11 +38,9 @@ export function ExtensionPage() { const extension = await fetchExtension(); const readmeUrl = `${extension.githubRepositoryUrl.replace("github.com", "raw.githubusercontent.com")}/master/README.md`; const description = await (await fetch(readmeUrl)).text(); - const reviews = await fetchReviews(); setExtension(extension); setDescription(description); - setReviews(reviews); } catch (error) { console.error(error); } @@ -80,7 +78,7 @@ export function ExtensionPage() { - + @@ -96,7 +94,7 @@ function Overview({ extension, description }: { extension: Extension, descriptio

Categories

- {extension.category.map(category => ( + {extension.categories.map(category => ( {category.name} ))}
@@ -122,17 +120,17 @@ function Reviews({ reviews }: { reviews: Review[] }) {
-
{review.user.firstName} {review.user.lastName}
+
{review.user}
- {review.content} + {review.text}
diff --git a/src/renderer/components/+preferences/install.tsx b/src/renderer/components/+preferences/install.tsx index a16f6aa9ee..1c4cf8ad66 100644 --- a/src/renderer/components/+preferences/install.tsx +++ b/src/renderer/components/+preferences/install.tsx @@ -11,7 +11,7 @@ import { Icon } from "../icon"; import { SearchInput } from "../input"; import { Spinner } from "../spinner"; import { ExtensionCard } from "./extension-card"; -import { Extension, getExtensions } from "./extension-list"; +import type { Extension } from "./extension-list"; export function Install() { const [extensions, setExtensions] = useState([]); @@ -21,9 +21,13 @@ export function Install() { useEffect(() => { async function fetchExtensions() { try { - const response = await getExtensions(); + const response = await fetch("http://localhost:65113/api/extensions/", { + method: "GET", + }); - setExtensions(response); + const extensions = await response.json(); + + setExtensions(extensions.reverse()); } catch (error) { console.error(error); } @@ -63,7 +67,7 @@ function ExtensionList({ extensions, search }: { extensions: Extension[], search )); function handleClick(extensionId: string) { - history.push(`extension/${extensionId}/overview`); + history.push(`extension/${extensionId}/overview?id=${extensionId}`); } if (!filteredExtensions.length) {