saleor-dashboard/src/apps/components/AppDetailsPage/Header.tsx
Lukasz Ostrowski 8ba29059a2
Display custom Apps' logos (#3749)
* wip

* implement logo in all contexts

* fix types

* Improve icons rendering

* Reuse App Header in Manage App page

* Remove loading fallback icon for official Saleor apps. It will be fetched with manifest now

* Imprve app fallback icon

* wip fix tests

* Remove useless test

* Add sizes for logos queries

* Fix thumbnail size
2023-06-15 16:06:08 +02:00

58 lines
1.3 KiB
TypeScript

import { AppPageNav } from "@dashboard/apps/components/AppPage/AppPageNav";
import { AppUrls } from "@dashboard/apps/urls";
import { AppQuery } from "@dashboard/graphql";
import React from "react";
import HeaderOptions from "./HeaderOptions";
interface HeaderProps {
data: AppQuery["app"];
onAppActivateOpen: () => void;
onAppDeactivateOpen: () => void;
onAppDeleteOpen: () => void;
}
const Header: React.FC<HeaderProps> = ({
data,
onAppActivateOpen,
onAppDeactivateOpen,
onAppDeleteOpen,
}) => {
const getBackButtonUrl = () => {
/**
* App is null with first render so fallback with HTML-safe fallback
*/
if (!data?.id) {
return "#";
}
const isAppActive = data.isActive;
return isAppActive
? AppUrls.resolveAppUrl(data.id)
: AppUrls.resolveAppListUrl();
};
return (
<>
<AppPageNav
name={data.name}
supportUrl={data.supportUrl}
homepageUrl={data.homepageUrl}
author={data.author}
appLogoUrl={data.brand?.logo.default}
appId={data.id}
goBackUrl={getBackButtonUrl()}
showMangeAppButton={false}
/>
<HeaderOptions
data={data}
onAppActivateOpen={onAppActivateOpen}
onAppDeactivateOpen={onAppDeactivateOpen}
onAppDeleteOpen={onAppDeleteOpen}
/>
</>
);
};
export default Header;