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:
AmirReza Jamali
2026-05-13 17:07:47 +03:30
parent d1bc56dc60
commit 25f8bde229
49 changed files with 3511 additions and 2197 deletions
+12 -21
View File
@@ -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}
/>