Format & Lint

This commit is contained in:
Isaac Wise 2024-04-23 20:53:33 -05:00
parent 2b04bcb1df
commit 4f6368fcbf
10 changed files with 124 additions and 102 deletions

View File

@ -1,40 +1,43 @@
import LinkCard from "@/components/LinkViews/LinkCard"; import LinkCard from "@/components/LinkViews/LinkCard";
import { LinkIncludingShortenedCollectionAndTags } from "@/types/global"; import { LinkIncludingShortenedCollectionAndTags } from "@/types/global";
import { GridLoader } from "react-spinners"; import { GridLoader } from "react-spinners";
import Masonry from 'react-masonry-css' import Masonry from "react-masonry-css";
export default function MasonryView({ export default function MasonryView({
links, links,
editMode, editMode,
isLoading, isLoading,
}: { }: {
links: LinkIncludingShortenedCollectionAndTags[]; links: LinkIncludingShortenedCollectionAndTags[];
editMode?: boolean; editMode?: boolean;
isLoading?: boolean; isLoading?: boolean;
}) { }) {
return ( return (
<Masonry breakpointCols={4} columnClassName="!w-full flex flex-col gap-5" className="grid min-[1900px]:grid-cols-4 xl:grid-cols-3 sm:grid-cols-2 grid-cols-1 gap-5"> <Masonry
{links.map((e, i) => { breakpointCols={4}
return ( columnClassName="!w-full flex flex-col gap-5"
<LinkCard className="grid min-[1900px]:grid-cols-4 xl:grid-cols-3 sm:grid-cols-2 grid-cols-1 gap-5"
key={i} >
link={e} {links.map((e, i) => {
count={i} return (
flipDropdown={i === links.length - 1} <LinkCard
editMode={editMode} key={i}
/> link={e}
); count={i}
})} flipDropdown={i === links.length - 1}
editMode={editMode}
/>
);
})}
{isLoading && links.length > 0 && ( {isLoading && links.length > 0 && (
<GridLoader <GridLoader
color="oklch(var(--p))" color="oklch(var(--p))"
loading={true} loading={true}
size={20} size={20}
className="fixed top-5 right-5 opacity-50 z-30" className="fixed top-5 right-5 opacity-50 z-30"
/> />
)} )}
</Masonry> </Masonry>
); );
} }

View File

@ -122,8 +122,8 @@ export default function LinkCard({ link, flipDropdown, editMode }: Props) {
? handleCheckboxClick(link) ? handleCheckboxClick(link)
: editMode : editMode
? toast.error( ? toast.error(
"You don't have permission to edit or delete this item." "You don't have permission to edit or delete this item."
) )
: undefined : undefined
} }
> >
@ -133,7 +133,7 @@ export default function LinkCard({ link, flipDropdown, editMode }: Props) {
!editMode && window.open(generateLinkHref(link, account), "_blank") !editMode && window.open(generateLinkHref(link, account), "_blank")
} }
> >
{viewMode === 'masonry' && !(previewAvailable(link)) ? null : ( {viewMode === "masonry" && !previewAvailable(link) ? null : (
<> <>
<div className="relative rounded-t-2xl h-40 overflow-hidden"> <div className="relative rounded-t-2xl h-40 overflow-hidden">
{previewAvailable(link) ? ( {previewAvailable(link) ? (
@ -234,7 +234,11 @@ export default function LinkCard({ link, flipDropdown, editMode }: Props) {
<LinkActions <LinkActions
link={link} link={link}
collection={collection} collection={collection}
position={!(previewAvailable(link)) && viewMode === 'masonry' ? "top-[.75rem] right-3" : "top-[10.75rem] right-3"} position={
!previewAvailable(link) && viewMode === "masonry"
? "top-[.75rem] right-3"
: "top-[10.75rem] right-3"
}
toggleShowInfo={() => setShowInfo(!showInfo)} toggleShowInfo={() => setShowInfo(!showInfo)}
linkInfo={showInfo} linkInfo={showInfo}
flipDropdown={flipDropdown} flipDropdown={flipDropdown}

View File

@ -26,30 +26,33 @@ export default function ViewDropdown({ viewMode, setViewMode }: Props) {
<div className="p-1 flex flex-row gap-1 border border-neutral-content rounded-[0.625rem]"> <div className="p-1 flex flex-row gap-1 border border-neutral-content rounded-[0.625rem]">
<button <button
onClick={(e) => onChangeViewMode(e, ViewMode.Card)} onClick={(e) => onChangeViewMode(e, ViewMode.Card)}
className={`btn btn-square btn-sm btn-ghost ${viewMode == ViewMode.Card className={`btn btn-square btn-sm btn-ghost ${
? "bg-primary/20 hover:bg-primary/20" viewMode == ViewMode.Card
: "hover:bg-neutral/20" ? "bg-primary/20 hover:bg-primary/20"
}`} : "hover:bg-neutral/20"
}`}
> >
<i className="bi-grid w-4 h-4 text-neutral"></i> <i className="bi-grid w-4 h-4 text-neutral"></i>
</button> </button>
<button <button
onClick={(e) => onChangeViewMode(e, ViewMode.Masonry)} onClick={(e) => onChangeViewMode(e, ViewMode.Masonry)}
className={`btn btn-square btn-sm btn-ghost ${viewMode == ViewMode.Masonry className={`btn btn-square btn-sm btn-ghost ${
? "bg-primary/20 hover:bg-primary/20" viewMode == ViewMode.Masonry
: "hover:bg-neutral/20" ? "bg-primary/20 hover:bg-primary/20"
}`} : "hover:bg-neutral/20"
}`}
> >
<i className="bi bi-columns-gap w-4 h-4 text-neutral"></i> <i className="bi bi-columns-gap w-4 h-4 text-neutral"></i>
</button> </button>
<button <button
onClick={(e) => onChangeViewMode(e, ViewMode.List)} onClick={(e) => onChangeViewMode(e, ViewMode.List)}
className={`btn btn-square btn-sm btn-ghost ${viewMode == ViewMode.List className={`btn btn-square btn-sm btn-ghost ${
? "bg-primary/20 hover:bg-primary/20" viewMode == ViewMode.List
: "hover:bg-neutral/20" ? "bg-primary/20 hover:bg-primary/20"
}`} : "hover:bg-neutral/20"
}`}
> >
<i className="bi bi-view-stacked w-4 h-4 text-neutral"></i> <i className="bi bi-view-stacked w-4 h-4 text-neutral"></i>
</button> </button>

View File

@ -98,19 +98,19 @@ if (
const user = await prisma.user.findFirst({ const user = await prisma.user.findFirst({
where: emailEnabled where: emailEnabled
? { ? {
OR: [ OR: [
{ {
username: username.toLowerCase(), username: username.toLowerCase(),
}, },
{ {
email: username?.toLowerCase(), email: username?.toLowerCase(),
}, },
], ],
emailVerified: { not: null }, emailVerified: { not: null },
} }
: { : {
username: username.toLowerCase(), username: username.toLowerCase(),
}, },
}); });
let passwordMatches: boolean = false; let passwordMatches: boolean = false;
@ -242,27 +242,25 @@ if (process.env.NEXT_PUBLIC_AUTH0_ENABLED === "true") {
// Authelia // Authelia
if (process.env.NEXT_PUBLIC_AUTHELIA_ENABLED === "true") { if (process.env.NEXT_PUBLIC_AUTHELIA_ENABLED === "true") {
providers.push( providers.push({
{ id: "authelia",
id: "authelia", name: "Authelia",
name: "Authelia", type: "oauth",
type: "oauth", clientId: process.env.AUTHELIA_CLIENT_ID!,
clientId: process.env.AUTHELIA_CLIENT_ID!, clientSecret: process.env.AUTHELIA_CLIENT_SECRET!,
clientSecret: process.env.AUTHELIA_CLIENT_SECRET!, wellKnown: process.env.AUTHELIA_WELLKNOWN_URL!,
wellKnown: process.env.AUTHELIA_WELLKNOWN_URL!, authorization: { params: { scope: "openid email profile" } },
authorization: { params: { scope: "openid email profile" } }, idToken: true,
idToken: true, checks: ["pkce", "state"],
checks: ["pkce", "state"], profile(profile) {
profile(profile) { return {
return { id: profile.sub,
id: profile.sub, name: profile.name,
name: profile.name, email: profile.email,
email: profile.email, username: profile.preferred_username,
username: profile.preferred_username, };
} },
}, });
}
);
const _linkAccount = adapter.linkAccount; const _linkAccount = adapter.linkAccount;
adapter.linkAccount = (account) => { adapter.linkAccount = (account) => {

View File

@ -401,7 +401,7 @@ export function getLogins() {
return { return {
credentialsEnabled: credentialsEnabled:
process.env.NEXT_PUBLIC_CREDENTIALS_ENABLED === "true" || process.env.NEXT_PUBLIC_CREDENTIALS_ENABLED === "true" ||
process.env.NEXT_PUBLIC_CREDENTIALS_ENABLED === undefined process.env.NEXT_PUBLIC_CREDENTIALS_ENABLED === undefined
? "true" ? "true"
: "false", : "false",
emailEnabled: emailEnabled:

View File

@ -127,7 +127,8 @@ export default function Index() {
const bulkDeleteLinks = async () => { const bulkDeleteLinks = async () => {
const load = toast.loading( const load = toast.loading(
`Deleting ${selectedLinks.length} Link${selectedLinks.length > 1 ? "s" : "" `Deleting ${selectedLinks.length} Link${
selectedLinks.length > 1 ? "s" : ""
}...` }...`
); );
@ -139,7 +140,8 @@ export default function Index() {
response.ok && response.ok &&
toast.success( toast.success(
`Deleted ${selectedLinks.length} Link${selectedLinks.length > 1 ? "s" : "" `Deleted ${selectedLinks.length} Link${
selectedLinks.length > 1 ? "s" : ""
}!` }!`
); );
}; };
@ -149,8 +151,9 @@ export default function Index() {
<div <div
className="h-[60rem] p-5 flex gap-3 flex-col" className="h-[60rem] p-5 flex gap-3 flex-col"
style={{ style={{
backgroundImage: `linear-gradient(${activeCollection?.color}20 10%, ${settings.theme === "dark" ? "#262626" : "#f3f4f6" backgroundImage: `linear-gradient(${activeCollection?.color}20 10%, ${
} 13rem, ${settings.theme === "dark" ? "#171717" : "#ffffff"} 100%)`, settings.theme === "dark" ? "#262626" : "#f3f4f6"
} 13rem, ${settings.theme === "dark" ? "#171717" : "#ffffff"} 100%)`,
}} }}
> >
{activeCollection && ( {activeCollection && (
@ -325,10 +328,11 @@ export default function Index() {
setEditMode(!editMode); setEditMode(!editMode);
setSelectedLinks([]); setSelectedLinks([]);
}} }}
className={`btn btn-square btn-sm btn-ghost ${editMode className={`btn btn-square btn-sm btn-ghost ${
editMode
? "bg-primary/20 hover:bg-primary/20" ? "bg-primary/20 hover:bg-primary/20"
: "hover:bg-neutral/20" : "hover:bg-neutral/20"
}`} }`}
> >
<i className="bi-pencil-fill text-neutral text-xl"></i> <i className="bi-pencil-fill text-neutral text-xl"></i>
</div> </div>

View File

@ -52,7 +52,8 @@ export default function Links() {
const bulkDeleteLinks = async () => { const bulkDeleteLinks = async () => {
const load = toast.loading( const load = toast.loading(
`Deleting ${selectedLinks.length} Link${selectedLinks.length > 1 ? "s" : "" `Deleting ${selectedLinks.length} Link${
selectedLinks.length > 1 ? "s" : ""
}...` }...`
); );
@ -64,7 +65,8 @@ export default function Links() {
response.ok && response.ok &&
toast.success( toast.success(
`Deleted ${selectedLinks.length} Link${selectedLinks.length > 1 ? "s" : "" `Deleted ${selectedLinks.length} Link${
selectedLinks.length > 1 ? "s" : ""
}!` }!`
); );
}; };
@ -97,10 +99,11 @@ export default function Links() {
setEditMode(!editMode); setEditMode(!editMode);
setSelectedLinks([]); setSelectedLinks([]);
}} }}
className={`btn btn-square btn-sm btn-ghost ${editMode className={`btn btn-square btn-sm btn-ghost ${
editMode
? "bg-primary/20 hover:bg-primary/20" ? "bg-primary/20 hover:bg-primary/20"
: "hover:bg-neutral/20" : "hover:bg-neutral/20"
}`} }`}
> >
<i className="bi-pencil-fill text-neutral text-xl"></i> <i className="bi-pencil-fill text-neutral text-xl"></i>
</div> </div>

View File

@ -50,7 +50,8 @@ export default function PinnedLinks() {
const bulkDeleteLinks = async () => { const bulkDeleteLinks = async () => {
const load = toast.loading( const load = toast.loading(
`Deleting ${selectedLinks.length} Link${selectedLinks.length > 1 ? "s" : "" `Deleting ${selectedLinks.length} Link${
selectedLinks.length > 1 ? "s" : ""
}...` }...`
); );
@ -62,7 +63,8 @@ export default function PinnedLinks() {
response.ok && response.ok &&
toast.success( toast.success(
`Deleted ${selectedLinks.length} Link${selectedLinks.length > 1 ? "s" : "" `Deleted ${selectedLinks.length} Link${
selectedLinks.length > 1 ? "s" : ""
}!` }!`
); );
}; };
@ -94,10 +96,11 @@ export default function PinnedLinks() {
setEditMode(!editMode); setEditMode(!editMode);
setSelectedLinks([]); setSelectedLinks([]);
}} }}
className={`btn btn-square btn-sm btn-ghost ${editMode className={`btn btn-square btn-sm btn-ghost ${
editMode
? "bg-primary/20 hover:bg-primary/20" ? "bg-primary/20 hover:bg-primary/20"
: "hover:bg-neutral/20" : "hover:bg-neutral/20"
}`} }`}
> >
<i className="bi-pencil-fill text-neutral text-xl"></i> <i className="bi-pencil-fill text-neutral text-xl"></i>
</div> </div>

View File

@ -125,7 +125,8 @@ export default function Index() {
const bulkDeleteLinks = async () => { const bulkDeleteLinks = async () => {
const load = toast.loading( const load = toast.loading(
`Deleting ${selectedLinks.length} Link${selectedLinks.length > 1 ? "s" : "" `Deleting ${selectedLinks.length} Link${
selectedLinks.length > 1 ? "s" : ""
}...` }...`
); );
@ -137,7 +138,8 @@ export default function Index() {
response.ok && response.ok &&
toast.success( toast.success(
`Deleted ${selectedLinks.length} Link${selectedLinks.length > 1 ? "s" : "" `Deleted ${selectedLinks.length} Link${
selectedLinks.length > 1 ? "s" : ""
}!` }!`
); );
}; };
@ -197,10 +199,11 @@ export default function Index() {
</p> </p>
<div className="relative"> <div className="relative">
<div <div
className={`dropdown dropdown-bottom font-normal ${activeTag?.name.length && activeTag?.name.length > 8 className={`dropdown dropdown-bottom font-normal ${
activeTag?.name.length && activeTag?.name.length > 8
? "dropdown-end" ? "dropdown-end"
: "" : ""
}`} }`}
> >
<div <div
tabIndex={0} tabIndex={0}
@ -252,10 +255,11 @@ export default function Index() {
setEditMode(!editMode); setEditMode(!editMode);
setSelectedLinks([]); setSelectedLinks([]);
}} }}
className={`btn btn-square btn-sm btn-ghost ${editMode className={`btn btn-square btn-sm btn-ghost ${
editMode
? "bg-primary/20 hover:bg-primary/20" ? "bg-primary/20 hover:bg-primary/20"
: "hover:bg-neutral/20" : "hover:bg-neutral/20"
}`} }`}
> >
<i className="bi-pencil-fill text-neutral text-xl"></i> <i className="bi-pencil-fill text-neutral text-xl"></i>
</div> </div>

View File

@ -418,4 +418,4 @@ declare global {
} }
} }
export { }; export {};