mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Use localhost fetch requests instead of mocked ones
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
This commit is contained in:
parent
1b913091b7
commit
a76c4665f4
@ -6,10 +6,10 @@
|
|||||||
import styles from "./extension-page.module.scss";
|
import styles from "./extension-page.module.scss";
|
||||||
|
|
||||||
import React, { useEffect, useState } from "react";
|
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 { Spinner } from "../spinner";
|
||||||
import { ExtensionCard } from "./extension-card";
|
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 { MarkdownViewer } from "../markdown-viewer";
|
||||||
import { Tab, Tabs } from "../tabs";
|
import { Tab, Tabs } from "../tabs";
|
||||||
import { navigate } from "../../navigation";
|
import { navigate } from "../../navigation";
|
||||||
@ -20,17 +20,17 @@ import { Rating } from "@material-ui/lab";
|
|||||||
export function ExtensionPage() {
|
export function ExtensionPage() {
|
||||||
const [extension, setExtension] = useState<Extension>(null);
|
const [extension, setExtension] = useState<Extension>(null);
|
||||||
const [description, setDescription] = useState<string>("");
|
const [description, setDescription] = useState<string>("");
|
||||||
const [reviews, setReviews] = useState<Review[]>([]);
|
|
||||||
const { id } = useParams<{ id?: string }>();
|
|
||||||
const isActive = (route: RouteProps) => !!matchPath(location.pathname, { path: route.path, exact: true });
|
const isActive = (route: RouteProps) => !!matchPath(location.pathname, { path: route.path, exact: true });
|
||||||
|
const location = useLocation();
|
||||||
|
const id = location.search.replace("?id=", "");
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
async function fetchExtension() {
|
async function fetchExtension() {
|
||||||
return await getExtensionById(id);
|
const response = await fetch(`http://localhost:65113/api/extensions/${id}/`, {
|
||||||
}
|
method: "GET",
|
||||||
|
});
|
||||||
|
|
||||||
async function fetchReviews() {
|
return await response.json();
|
||||||
return await getReviewsExtensionById(id);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async function loadData() {
|
async function loadData() {
|
||||||
@ -38,11 +38,9 @@ export function ExtensionPage() {
|
|||||||
const extension = await fetchExtension();
|
const extension = await fetchExtension();
|
||||||
const readmeUrl = `${extension.githubRepositoryUrl.replace("github.com", "raw.githubusercontent.com")}/master/README.md`;
|
const readmeUrl = `${extension.githubRepositoryUrl.replace("github.com", "raw.githubusercontent.com")}/master/README.md`;
|
||||||
const description = await (await fetch(readmeUrl)).text();
|
const description = await (await fetch(readmeUrl)).text();
|
||||||
const reviews = await fetchReviews();
|
|
||||||
|
|
||||||
setExtension(extension);
|
setExtension(extension);
|
||||||
setDescription(description);
|
setDescription(description);
|
||||||
setReviews(reviews);
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
}
|
}
|
||||||
@ -80,7 +78,7 @@ export function ExtensionPage() {
|
|||||||
<Overview extension={extension} description={description}/>
|
<Overview extension={extension} description={description}/>
|
||||||
</Route>
|
</Route>
|
||||||
<Route path={`/preferences/extension/:extensionId?/reviews`}>
|
<Route path={`/preferences/extension/:extensionId?/reviews`}>
|
||||||
<Reviews reviews={reviews}/>
|
<Reviews reviews={extension.reviews}/>
|
||||||
</Route>
|
</Route>
|
||||||
</Switch>
|
</Switch>
|
||||||
</section>
|
</section>
|
||||||
@ -96,7 +94,7 @@ function Overview({ extension, description }: { extension: Extension, descriptio
|
|||||||
<div className={styles.metadata}>
|
<div className={styles.metadata}>
|
||||||
<h3 className="mb-5">Categories</h3>
|
<h3 className="mb-5">Categories</h3>
|
||||||
<div className={styles.links}>
|
<div className={styles.links}>
|
||||||
{extension.category.map(category => (
|
{extension.categories.map(category => (
|
||||||
<a key={`category-${category.id}`} href="#">{category.name}</a>
|
<a key={`category-${category.id}`} href="#">{category.name}</a>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
@ -122,17 +120,17 @@ function Reviews({ reviews }: { reviews: Review[] }) {
|
|||||||
<div key={review.id} className={styles.review}>
|
<div key={review.id} className={styles.review}>
|
||||||
<div className="avatar">
|
<div className="avatar">
|
||||||
<Avatar
|
<Avatar
|
||||||
title={review.user.username}
|
title={review.user}
|
||||||
size={32}
|
size={32}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="content">
|
<div className="content">
|
||||||
<div className={styles.userName}><b>{review.user.firstName} {review.user.lastName}</b></div>
|
<div className={styles.userName}><b>{review.user}</b></div>
|
||||||
<div className="mb-4">
|
<div className="mb-4">
|
||||||
<Rating name="read-only" value={Math.floor(Math.random() * 5) + 1} readOnly />
|
<Rating name="read-only" value={Math.floor(Math.random() * 5) + 1} readOnly />
|
||||||
</div>
|
</div>
|
||||||
<div className="text">
|
<div className="text">
|
||||||
{review.content}
|
{review.text}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -11,7 +11,7 @@ import { Icon } from "../icon";
|
|||||||
import { SearchInput } from "../input";
|
import { SearchInput } from "../input";
|
||||||
import { Spinner } from "../spinner";
|
import { Spinner } from "../spinner";
|
||||||
import { ExtensionCard } from "./extension-card";
|
import { ExtensionCard } from "./extension-card";
|
||||||
import { Extension, getExtensions } from "./extension-list";
|
import type { Extension } from "./extension-list";
|
||||||
|
|
||||||
export function Install() {
|
export function Install() {
|
||||||
const [extensions, setExtensions] = useState([]);
|
const [extensions, setExtensions] = useState([]);
|
||||||
@ -21,9 +21,13 @@ export function Install() {
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
async function fetchExtensions() {
|
async function fetchExtensions() {
|
||||||
try {
|
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) {
|
} catch (error) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
}
|
}
|
||||||
@ -63,7 +67,7 @@ function ExtensionList({ extensions, search }: { extensions: Extension[], search
|
|||||||
));
|
));
|
||||||
|
|
||||||
function handleClick(extensionId: string) {
|
function handleClick(extensionId: string) {
|
||||||
history.push(`extension/${extensionId}/overview`);
|
history.push(`extension/${extensionId}/overview?id=${extensionId}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!filteredExtensions.length) {
|
if (!filteredExtensions.length) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user