Merge pull request #664 from Snekussaurier/feature-565

Add ability to use custom logo
This commit is contained in:
shamoon 2022-12-11 11:01:54 -08:00 committed by GitHub
commit 4f38c0ee80
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 58 additions and 52 deletions

View File

@ -1,9 +1,9 @@
import Image from "next/future/image"; import Image from "next/future/image";
export default function ResolvedIcon({ icon }) { export default function ResolvedIcon({ icon, width = 32, height = 32 }) {
// direct or relative URLs // direct or relative URLs
if (icon.startsWith("http") || icon.startsWith("/")) { if (icon.startsWith("http") || icon.startsWith("/")) {
return <Image src={`${icon}`} width={32} height={32} alt="logo" />; return <Image src={`${icon}`} width={width} height={height} alt="logo" />;
} }
// mdi- prefixed, material design icons // mdi- prefixed, material design icons
@ -12,8 +12,8 @@ export default function ResolvedIcon({ icon }) {
return ( return (
<div <div
style={{ style={{
width: 32, width,
height: 32, height,
maxWidth: '100%', maxWidth: '100%',
maxHeight: '100%', maxHeight: '100%',
background: "linear-gradient(180deg, rgb(var(--color-logo-start)), rgb(var(--color-logo-stop)))", background: "linear-gradient(180deg, rgb(var(--color-logo-start)), rgb(var(--color-logo-stop)))",
@ -29,8 +29,8 @@ export default function ResolvedIcon({ icon }) {
return ( return (
<Image <Image
src={`https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/${iconName}.png`} src={`https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/${iconName}.png`}
width={32} width={width}
height={32} height={height}
alt="logo" alt="logo"
/> />
); );

View File

@ -1,6 +1,11 @@
export default function Logo() { import ResolvedIcon from "components/resolvedicon"
export default function Logo({ options }) {
return ( return (
<div className="w-12 h-12 flex flex-row items-center align-middle mr-3 self-center"> <div className="w-12 h-12 flex flex-row items-center align-middle mr-3 self-center">
{options.icon ?
<ResolvedIcon icon={options.icon} width={48} height={48} /> :
// fallback to homepage logo
<svg <svg
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 1024 1024" viewBox="0 0 1024 1024"
@ -51,6 +56,7 @@ export default function Logo() {
/> />
</g> </g>
</svg> </svg>
</div> }
); </div>
)
} }