npm run serve:ssr funktioniert und Hamburger Menu bug fix

This commit is contained in:
2026-01-06 22:36:14 +01:00
parent 43027a54f7
commit 4f8fd77f7d
21 changed files with 371 additions and 111 deletions

View File

@@ -159,8 +159,10 @@ export function formatPhoneNumber(phone: string): string {
}
export const getSessionStorageHandler = function (criteriaType, path, value, previous, applyData) {
sessionStorage.setItem(`${criteriaType}_criteria`, JSON.stringify(this));
console.log('Zusätzlicher Parameter:', criteriaType);
if (typeof sessionStorage !== 'undefined') {
sessionStorage.setItem(`${criteriaType}_criteria`, JSON.stringify(this));
console.log('Zusätzlicher Parameter:', criteriaType);
}
};
export const getSessionStorageHandlerWrapper = param => {
return function (path, value, previous, applyData) {
@@ -191,6 +193,11 @@ export function map2User(jwt: string | null): KeycloakUser {
}
export function getImageDimensions(imageUrl: string): Promise<{ width: number; height: number }> {
return new Promise(resolve => {
// Only use Image in browser context
if (typeof Image === 'undefined') {
resolve({ width: 0, height: 0 });
return;
}
const img = new Image();
img.onload = () => {
resolve({ width: img.width, height: img.height });
@@ -295,9 +302,11 @@ export function checkAndUpdate(changed: boolean, condition: boolean, assignment:
return changed || condition;
}
export function removeSortByStorage() {
sessionStorage.removeItem('businessSortBy');
sessionStorage.removeItem('commercialSortBy');
sessionStorage.removeItem('professionalsSortBy');
if (typeof sessionStorage !== 'undefined') {
sessionStorage.removeItem('businessSortBy');
sessionStorage.removeItem('commercialSortBy');
sessionStorage.removeItem('professionalsSortBy');
}
}
// -----------------------------
// Criteria Proxy
@@ -311,8 +320,11 @@ export function getCriteriaStateObject(criteriaType: 'businessListings' | 'comme
} else {
initialState = createEmptyUserListingCriteria();
}
const storedState = sessionStorage.getItem(`${criteriaType}`);
return storedState ? JSON.parse(storedState) : initialState;
if (typeof sessionStorage !== 'undefined') {
const storedState = sessionStorage.getItem(`${criteriaType}`);
return storedState ? JSON.parse(storedState) : initialState;
}
return initialState;
}
export function getCriteriaProxy(path: string, component: any): BusinessListingCriteria | CommercialPropertyListingCriteria | UserListingCriteria {
if ('businessListings' === path) {
@@ -327,7 +339,9 @@ export function getCriteriaProxy(path: string, component: any): BusinessListingC
}
export function createEnhancedProxy(obj: BusinessListingCriteria | CommercialPropertyListingCriteria | UserListingCriteria, component: any) {
const sessionStorageHandler = function (path, value, previous, applyData) {
sessionStorage.setItem(`${obj.criteriaType}`, JSON.stringify(this));
if (typeof sessionStorage !== 'undefined') {
sessionStorage.setItem(`${obj.criteriaType}`, JSON.stringify(this));
}
};
return onChange(obj, function (path, value, previous, applyData) {
@@ -341,16 +355,20 @@ export function createEnhancedProxy(obj: BusinessListingCriteria | CommercialPro
});
}
export function getCriteriaByListingCategory(listingsCategory: 'business' | 'professionals_brokers' | 'commercialProperty') {
if (typeof sessionStorage === 'undefined') return null;
const storedState =
listingsCategory === 'business'
? sessionStorage.getItem('businessListings')
: listingsCategory === 'commercialProperty'
? sessionStorage.getItem('commercialPropertyListings')
: sessionStorage.getItem('brokerListings');
return JSON.parse(storedState);
return storedState ? JSON.parse(storedState) : null;
}
export function getSortByListingCategory(listingsCategory: 'business' | 'professionals_brokers' | 'commercialProperty') {
if (typeof sessionStorage === 'undefined') return null;
const storedSortBy =
listingsCategory === 'business' ? sessionStorage.getItem('businessSortBy') : listingsCategory === 'commercialProperty' ? sessionStorage.getItem('commercialSortBy') : sessionStorage.getItem('professionalsSortBy');
const sortBy = storedSortBy && storedSortBy !== 'null' ? (storedSortBy as SortByOptions) : null;