diff --git a/src/renderer/components/+preferences/extension-card.tsx b/src/renderer/components/+preferences/extension-card.tsx index 455f15d36a..99cac6f6c0 100644 --- a/src/renderer/components/+preferences/extension-card.tsx +++ b/src/renderer/components/+preferences/extension-card.tsx @@ -11,7 +11,7 @@ import Rating from "@material-ui/lab/Rating"; import installFromInputInjectable from "../+extensions/install-from-input/install-from-input.injectable"; import { Button } from "../button"; import { Icon } from "../icon"; -import type { Extension } from "./extension-list"; +import type { Extension } from "./extension-directory-types"; import type { ExtensionInstallationStateStore } from "../../../extensions/extension-installation-state-store/extension-installation-state-store"; import extensionInstallationStateStoreInjectable from "../../../extensions/extension-installation-state-store/extension-installation-state-store.injectable"; import type { IComputedValue } from "mobx"; diff --git a/src/renderer/components/+preferences/extension-directory-types.ts b/src/renderer/components/+preferences/extension-directory-types.ts new file mode 100644 index 0000000000..76c0b303d3 --- /dev/null +++ b/src/renderer/components/+preferences/extension-directory-types.ts @@ -0,0 +1,79 @@ +/** + * Copyright (c) OpenLens Authors. All rights reserved. + * Licensed under MIT License. See LICENSE in root directory for more information. + */ + +export interface Review { + id: string; + parent?: string; + rating: number; + text?: string + title?: string + type: string; + user: string +} + +export interface User { + /** @format uuid */ + id?: string; + username?: string; + firstName?: string; + lastName?: string; + company?: string; + email?: string; + password?: string; + phone?: string; + type?: "publisher" | "user"; + + /** + * User Status + * @format int32 + */ + userStatus?: number; +} + +export interface Tag { + /** @format int64 */ + id?: number; + name?: string; +} + +export interface Category { + /** @format int64 */ + id?: number; + name?: string; +} + +export interface Extension { + /** @format uuid */ + id?: string; + publisher?: User; + version?: string; + license?: string; + category?: Category[]; + categories?: Category[]; + installationName?: string; + name?: string; + shortDescription?: string; + description?: string; + previewImageUrl?: string; + appIconUrl?: string; + + rating?: number; + + /** @format int64 */ + totalNumberOfInstallations?: number; + githubRepositoryUrl?: string; + websiteUrl?: string; + npmPackageUrl?: string; + binaryUrl?: string; + + /** @format date-time */ + createdAt?: string; + + /** @format date-time */ + updatedAt?: string; + tags?: Tag[]; + + reviews?: Review[] +} diff --git a/src/renderer/components/+preferences/extension-page.tsx b/src/renderer/components/+preferences/extension-page.tsx index c5d31bdd7c..b42a036807 100644 --- a/src/renderer/components/+preferences/extension-page.tsx +++ b/src/renderer/components/+preferences/extension-page.tsx @@ -6,7 +6,7 @@ import styles from "./extension-page.module.scss"; import React, { useEffect, useState } from "react"; -import type { Extension, Review } from "./extension-list"; +import type { Extension, Review } from "./extension-directory-types"; import { Spinner } from "../spinner"; import { ExtensionCard } from "./extension-card"; import { matchPath, Route, RouteProps, Switch, useLocation } from "react-router"; diff --git a/src/renderer/components/+preferences/install.tsx b/src/renderer/components/+preferences/install.tsx index 1c4cf8ad66..354c52a5e4 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 type { Extension } from "./extension-list"; +import type { Extension } from "./extension-directory-types"; export function Install() { const [extensions, setExtensions] = useState([]);