feat(dependencies): add Lottie animation libraries and refactor NotFoundPage
- Added `@lottiefiles/dotlottie-react` and `lottie-react` dependencies for enhanced animation capabilities. - Refactored the NotFoundPage component to utilize a dedicated NotFoundContent component, improving code organization and readability. - Updated package.json and pnpm-lock.yaml to reflect new dependencies and their versions.
This commit is contained in:
@@ -31,7 +31,7 @@ const TenderDetails = ({ params }: IProps) => {
|
||||
const selectedLanguage = searchParams.get("lang") || "en";
|
||||
const { mutate: translateTender, isPending: isTranslating } =
|
||||
useTranslateTenderMutation();
|
||||
const { data, isLoading, isError, refetch } = useTenderDetailQuery(details, {
|
||||
const { data, isLoading, isError } = useTenderDetailQuery(details, {
|
||||
lang: selectedLanguage,
|
||||
});
|
||||
|
||||
@@ -65,29 +65,21 @@ const TenderDetails = ({ params }: IProps) => {
|
||||
const activeSectionId = useTenderSectionScrollSpy(sectionIds);
|
||||
const handleLanguageChange = useCallback(
|
||||
(event: React.ChangeEvent<HTMLSelectElement>) => {
|
||||
const nextParams = new URLSearchParams(searchParams.toString());
|
||||
const nextLanguage = event.target.value;
|
||||
if (nextLanguage) {
|
||||
nextParams.set("lang", nextLanguage);
|
||||
} else {
|
||||
nextParams.delete("lang");
|
||||
}
|
||||
if (!nextLanguage) return;
|
||||
|
||||
const prevLanguage = searchParams.get("lang") || "en";
|
||||
if (nextLanguage === prevLanguage) return;
|
||||
|
||||
const nextParams = new URLSearchParams(searchParams.toString());
|
||||
nextParams.set("lang", nextLanguage);
|
||||
const queryString = nextParams.toString();
|
||||
router.replace(queryString ? `${pathname}?${queryString}` : pathname);
|
||||
},
|
||||
[pathname, router, searchParams],
|
||||
);
|
||||
|
||||
const handleTranslate = useCallback(() => {
|
||||
translateTender(
|
||||
{ id: details, language: selectedLanguage },
|
||||
{
|
||||
onSuccess: async () => {
|
||||
await refetch();
|
||||
},
|
||||
},
|
||||
);
|
||||
}, [details, refetch, selectedLanguage, translateTender]);
|
||||
translateTender({ id: details, language: nextLanguage });
|
||||
},
|
||||
[details, pathname, router, searchParams, translateTender],
|
||||
);
|
||||
|
||||
if (isLoading) return <Loading />;
|
||||
if (isError) {
|
||||
@@ -106,7 +98,6 @@ const TenderDetails = ({ params }: IProps) => {
|
||||
title={tender.title}
|
||||
selectedLanguage={selectedLanguage}
|
||||
onLanguageChange={handleLanguageChange}
|
||||
onTranslate={handleTranslate}
|
||||
isTranslating={isTranslating}
|
||||
status={tender.status}
|
||||
/>
|
||||
|
||||
Reference in New Issue
Block a user