bug fixed
This commit is contained in:
parent
b2c5c3c6dd
commit
a6a0f6965b
|
@ -127,14 +127,17 @@ const IconPopover = ({
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div className="flex flex-col-reverse gap-2 justify-between items-center mt-2">
|
||||||
|
<p className="text-neutral text-sm">{t("close_to_apply")}</p>
|
||||||
<div
|
<div
|
||||||
className="btn btn-ghost btn-sm mt-2 w-fit mx-auto"
|
className="btn btn-ghost btn-sm w-fit"
|
||||||
onClick={reset as React.MouseEventHandler<HTMLDivElement>}
|
onClick={reset as React.MouseEventHandler<HTMLDivElement>}
|
||||||
>
|
>
|
||||||
{t("reset_defaults")}
|
{t("reset_defaults")}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</Popover>
|
</Popover>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
|
@ -39,7 +39,7 @@ const handleMonolith = async (link: Link, content: string) => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log("Error running MONOLITH:", err);
|
console.log("Uncaught Monolith error...");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,70 +1,70 @@
|
||||||
import React, { useEffect, useState } from "react";
|
import React, { useEffect } from "react";
|
||||||
import { useRouter } from "next/router";
|
import { useRouter } from "next/router";
|
||||||
import {
|
import { ArchivedFormat } from "@/types/global";
|
||||||
ArchivedFormat,
|
|
||||||
LinkIncludingShortenedCollectionAndTags,
|
|
||||||
} from "@/types/global";
|
|
||||||
import ReadableView from "@/components/ReadableView";
|
import ReadableView from "@/components/ReadableView";
|
||||||
import getServerSideProps from "@/lib/client/getServerSideProps";
|
import getServerSideProps from "@/lib/client/getServerSideProps";
|
||||||
import { useGetLink, useLinks } from "@/hooks/store/links";
|
import { useGetLink } from "@/hooks/store/links";
|
||||||
|
import clsx from "clsx";
|
||||||
|
|
||||||
export default function Index() {
|
export default function Index() {
|
||||||
const { links } = useLinks();
|
|
||||||
|
|
||||||
const getLink = useGetLink();
|
const getLink = useGetLink();
|
||||||
|
|
||||||
const [link, setLink] = useState<LinkIncludingShortenedCollectionAndTags>();
|
|
||||||
|
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const fetchLink = async () => {
|
|
||||||
if (router.query.id) {
|
if (router.query.id) {
|
||||||
await getLink.mutateAsync({ id: Number(router.query.id) });
|
getLink.mutateAsync({ id: Number(router.query.id) });
|
||||||
}
|
}
|
||||||
};
|
|
||||||
|
|
||||||
fetchLink();
|
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
if (links && links[0])
|
|
||||||
setLink(links.find((e) => e.id === Number(router.query.id)));
|
|
||||||
}, [links]);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="relative">
|
<div className={clsx(getLink.isPending ? "flex h-screen" : "relative")}>
|
||||||
{/* <div className="fixed left-1/2 transform -translate-x-1/2 w-fit py-1 px-3 bg-base-200 border border-neutral-content rounded-md">
|
{/* <div className="fixed left-1/2 transform -translate-x-1/2 w-fit py-1 px-3 bg-base-200 border border-neutral-content rounded-md">
|
||||||
Readable
|
Readable
|
||||||
</div> */}
|
</div> */}
|
||||||
{link && Number(router.query.format) === ArchivedFormat.readability && (
|
{getLink.data?.id &&
|
||||||
<ReadableView link={link} />
|
Number(router.query.format) === ArchivedFormat.readability ? (
|
||||||
)}
|
<ReadableView link={getLink.data} />
|
||||||
{link && Number(router.query.format) === ArchivedFormat.monolith && (
|
) : getLink.data?.id &&
|
||||||
|
Number(router.query.format) === ArchivedFormat.monolith ? (
|
||||||
<iframe
|
<iframe
|
||||||
src={`/api/v1/archives/${link.id}?format=${ArchivedFormat.monolith}`}
|
src={`/api/v1/archives/${getLink.data.id}?format=${ArchivedFormat.monolith}`}
|
||||||
className="w-full h-screen border-none"
|
className="w-full h-screen border-none"
|
||||||
></iframe>
|
></iframe>
|
||||||
)}
|
) : getLink.data?.id &&
|
||||||
{link && Number(router.query.format) === ArchivedFormat.pdf && (
|
Number(router.query.format) === ArchivedFormat.pdf ? (
|
||||||
<iframe
|
<iframe
|
||||||
src={`/api/v1/archives/${link.id}?format=${ArchivedFormat.pdf}`}
|
src={`/api/v1/archives/${getLink.data.id}?format=${ArchivedFormat.pdf}`}
|
||||||
className="w-full h-screen border-none"
|
className="w-full h-screen border-none"
|
||||||
></iframe>
|
></iframe>
|
||||||
)}
|
) : getLink.data?.id &&
|
||||||
{link && Number(router.query.format) === ArchivedFormat.png && (
|
Number(router.query.format) === ArchivedFormat.png ? (
|
||||||
<img
|
<img
|
||||||
alt=""
|
alt=""
|
||||||
src={`/api/v1/archives/${link.id}?format=${ArchivedFormat.png}`}
|
src={`/api/v1/archives/${getLink.data.id}?format=${ArchivedFormat.png}`}
|
||||||
className="w-fit mx-auto"
|
className="w-fit mx-auto"
|
||||||
/>
|
/>
|
||||||
)}
|
) : getLink.data?.id &&
|
||||||
{link && Number(router.query.format) === ArchivedFormat.jpeg && (
|
Number(router.query.format) === ArchivedFormat.jpeg ? (
|
||||||
<img
|
<img
|
||||||
alt=""
|
alt=""
|
||||||
src={`/api/v1/archives/${link.id}?format=${ArchivedFormat.jpeg}`}
|
src={`/api/v1/archives/${getLink.data.id}?format=${ArchivedFormat.jpeg}`}
|
||||||
className="w-fit mx-auto"
|
className="w-fit mx-auto"
|
||||||
/>
|
/>
|
||||||
|
) : getLink.error ? (
|
||||||
|
<p>404 - Not found</p>
|
||||||
|
) : (
|
||||||
|
<div className="max-w-3xl p-5 m-auto w-full flex flex-col items-center gap-5">
|
||||||
|
<div className="w-full mr-auto h-4 skeleton rounded-md"></div>
|
||||||
|
<div className="w-full mr-auto h-4 skeleton rounded-md"></div>
|
||||||
|
<div className="w-full mr-auto h-4 skeleton rounded-md"></div>
|
||||||
|
<div className="w-3/4 mr-auto h-4 skeleton rounded-md"></div>
|
||||||
|
<div className="w-5/6 mr-auto h-4 skeleton rounded-md"></div>
|
||||||
|
<div className="w-3/4 mr-auto h-4 skeleton rounded-md"></div>
|
||||||
|
<div className="w-full mr-auto h-4 skeleton rounded-md"></div>
|
||||||
|
<div className="w-full mr-auto h-4 skeleton rounded-md"></div>
|
||||||
|
<div className="w-5/6 mr-auto h-4 skeleton rounded-md"></div>
|
||||||
|
</div>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
|
@ -1,64 +1,70 @@
|
||||||
import React, { useEffect, useState } from "react";
|
import React, { useEffect } from "react";
|
||||||
import { useRouter } from "next/router";
|
import { useRouter } from "next/router";
|
||||||
import {
|
import { ArchivedFormat } from "@/types/global";
|
||||||
ArchivedFormat,
|
|
||||||
LinkIncludingShortenedCollectionAndTags,
|
|
||||||
} from "@/types/global";
|
|
||||||
import ReadableView from "@/components/ReadableView";
|
import ReadableView from "@/components/ReadableView";
|
||||||
import getServerSideProps from "@/lib/client/getServerSideProps";
|
import getServerSideProps from "@/lib/client/getServerSideProps";
|
||||||
import { useGetLink } from "@/hooks/store/links";
|
import { useGetLink } from "@/hooks/store/links";
|
||||||
|
import clsx from "clsx";
|
||||||
|
|
||||||
export default function Index() {
|
export default function Index() {
|
||||||
const getLink = useGetLink();
|
const getLink = useGetLink();
|
||||||
|
|
||||||
const [link, setLink] = useState<LinkIncludingShortenedCollectionAndTags>();
|
|
||||||
|
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const fetchLink = async () => {
|
|
||||||
if (router.query.id) {
|
if (router.query.id) {
|
||||||
const get = await getLink.mutateAsync({ id: Number(router.query.id) });
|
getLink.mutateAsync({ id: Number(router.query.id), isPublicRoute: true });
|
||||||
setLink(get);
|
|
||||||
}
|
}
|
||||||
};
|
|
||||||
|
|
||||||
fetchLink();
|
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="relative">
|
<div className={clsx(getLink.isPending ? "flex h-screen" : "relative")}>
|
||||||
{/* <div className="fixed left-1/2 transform -translate-x-1/2 w-fit py-1 px-3 bg-base-200 border border-neutral-content rounded-md">
|
{/* <div className="fixed left-1/2 transform -translate-x-1/2 w-fit py-1 px-3 bg-base-200 border border-neutral-content rounded-md">
|
||||||
Readable
|
Readable
|
||||||
</div> */}
|
</div> */}
|
||||||
{link && Number(router.query.format) === ArchivedFormat.readability && (
|
{getLink.data?.id &&
|
||||||
<ReadableView link={link} />
|
Number(router.query.format) === ArchivedFormat.readability ? (
|
||||||
)}
|
<ReadableView link={getLink.data} />
|
||||||
{link && Number(router.query.format) === ArchivedFormat.monolith && (
|
) : getLink.data?.id &&
|
||||||
|
Number(router.query.format) === ArchivedFormat.monolith ? (
|
||||||
<iframe
|
<iframe
|
||||||
src={`/api/v1/archives/${link.id}?format=${ArchivedFormat.monolith}`}
|
src={`/api/v1/archives/${getLink.data.id}?format=${ArchivedFormat.monolith}`}
|
||||||
className="w-full h-screen border-none"
|
className="w-full h-screen border-none"
|
||||||
></iframe>
|
></iframe>
|
||||||
)}
|
) : getLink.data?.id &&
|
||||||
{link && Number(router.query.format) === ArchivedFormat.pdf && (
|
Number(router.query.format) === ArchivedFormat.pdf ? (
|
||||||
<iframe
|
<iframe
|
||||||
src={`/api/v1/archives/${link.id}?format=${ArchivedFormat.pdf}`}
|
src={`/api/v1/archives/${getLink.data.id}?format=${ArchivedFormat.pdf}`}
|
||||||
className="w-full h-screen border-none"
|
className="w-full h-screen border-none"
|
||||||
></iframe>
|
></iframe>
|
||||||
)}
|
) : getLink.data?.id &&
|
||||||
{link && Number(router.query.format) === ArchivedFormat.png && (
|
Number(router.query.format) === ArchivedFormat.png ? (
|
||||||
<img
|
<img
|
||||||
alt=""
|
alt=""
|
||||||
src={`/api/v1/archives/${link.id}?format=${ArchivedFormat.png}`}
|
src={`/api/v1/archives/${getLink.data.id}?format=${ArchivedFormat.png}`}
|
||||||
className="w-fit mx-auto"
|
className="w-fit mx-auto"
|
||||||
/>
|
/>
|
||||||
)}
|
) : getLink.data?.id &&
|
||||||
{link && Number(router.query.format) === ArchivedFormat.jpeg && (
|
Number(router.query.format) === ArchivedFormat.jpeg ? (
|
||||||
<img
|
<img
|
||||||
alt=""
|
alt=""
|
||||||
src={`/api/v1/archives/${link.id}?format=${ArchivedFormat.jpeg}`}
|
src={`/api/v1/archives/${getLink.data.id}?format=${ArchivedFormat.jpeg}`}
|
||||||
className="w-fit mx-auto"
|
className="w-fit mx-auto"
|
||||||
/>
|
/>
|
||||||
|
) : getLink.error ? (
|
||||||
|
<p>404 - Not found</p>
|
||||||
|
) : (
|
||||||
|
<div className="max-w-3xl p-5 m-auto w-full flex flex-col items-center gap-5">
|
||||||
|
<div className="w-full mr-auto h-4 skeleton rounded-md"></div>
|
||||||
|
<div className="w-full mr-auto h-4 skeleton rounded-md"></div>
|
||||||
|
<div className="w-full mr-auto h-4 skeleton rounded-md"></div>
|
||||||
|
<div className="w-3/4 mr-auto h-4 skeleton rounded-md"></div>
|
||||||
|
<div className="w-5/6 mr-auto h-4 skeleton rounded-md"></div>
|
||||||
|
<div className="w-3/4 mr-auto h-4 skeleton rounded-md"></div>
|
||||||
|
<div className="w-full mr-auto h-4 skeleton rounded-md"></div>
|
||||||
|
<div className="w-full mr-auto h-4 skeleton rounded-md"></div>
|
||||||
|
<div className="w-5/6 mr-auto h-4 skeleton rounded-md"></div>
|
||||||
|
</div>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
|
@ -416,5 +416,6 @@
|
||||||
"resend_invite_success": "Invitation Resent!",
|
"resend_invite_success": "Invitation Resent!",
|
||||||
"remove_user": "Remove User",
|
"remove_user": "Remove User",
|
||||||
"continue_to_dashboard": "Continue to Dashboard",
|
"continue_to_dashboard": "Continue to Dashboard",
|
||||||
"confirm_user_removal_desc": "They will need to have a subscription to access Linkwarden again."
|
"confirm_user_removal_desc": "They will need to have a subscription to access Linkwarden again.",
|
||||||
|
"close_to_apply": "Close to apply"
|
||||||
}
|
}
|
Ŝarĝante…
Reference in New Issue