counties, pagination, filter count, show total results
This commit is contained in:
@@ -87,7 +87,6 @@ export function createEmptyBusinessListingCriteria(): BusinessListingCriteria {
|
||||
start: 0,
|
||||
length: 0,
|
||||
page: 0,
|
||||
pageCount: 0,
|
||||
state: '',
|
||||
city: '',
|
||||
types: [],
|
||||
@@ -117,7 +116,6 @@ export function createEmptyCommercialPropertyListingCriteria(): CommercialProper
|
||||
start: 0,
|
||||
length: 0,
|
||||
page: 0,
|
||||
pageCount: 0,
|
||||
state: '',
|
||||
city: '',
|
||||
types: [],
|
||||
@@ -135,7 +133,6 @@ export function createEmptyUserListingCriteria(): UserListingCriteria {
|
||||
start: 0,
|
||||
length: 0,
|
||||
page: 0,
|
||||
pageCount: 0,
|
||||
city: '',
|
||||
types: [],
|
||||
prompt: '',
|
||||
@@ -288,3 +285,78 @@ export function initFlowbiteFix() {
|
||||
}
|
||||
});
|
||||
}
|
||||
// export function arraysEqual(arr1: any[], arr2: any[]): boolean {
|
||||
// if (arr1.length !== arr2.length) return false;
|
||||
// for (let i = 0; i < arr1.length; i++) {
|
||||
// if (arr1[i] !== arr2[i]) return false;
|
||||
// }
|
||||
// return true;
|
||||
// }
|
||||
export function compareObjects<T extends object>(obj1: T, obj2: T, ignoreProperties: (keyof T)[] = []): number {
|
||||
let differences = 0;
|
||||
const keys = Object.keys(obj1) as Array<keyof T>;
|
||||
|
||||
for (const key of keys) {
|
||||
if (ignoreProperties.includes(key)) {
|
||||
continue; // Überspringe diese Eigenschaft, wenn sie in der Ignore-Liste ist
|
||||
}
|
||||
|
||||
const value1 = obj1[key];
|
||||
const value2 = obj2[key];
|
||||
|
||||
if (!areValuesEqual(value1, value2)) {
|
||||
differences++;
|
||||
}
|
||||
}
|
||||
|
||||
return differences;
|
||||
}
|
||||
|
||||
function areValuesEqual(value1: any, value2: any): boolean {
|
||||
if (Array.isArray(value1) || Array.isArray(value2)) {
|
||||
return arraysEqual(value1, value2);
|
||||
}
|
||||
|
||||
if (typeof value1 === 'string' || typeof value2 === 'string') {
|
||||
return isEqualString(value1, value2);
|
||||
}
|
||||
|
||||
if (typeof value1 === 'number' || typeof value2 === 'number') {
|
||||
return isEqualNumber(value1, value2);
|
||||
}
|
||||
|
||||
if (typeof value1 === 'boolean' || typeof value2 === 'boolean') {
|
||||
return isEqualBoolean(value1, value2);
|
||||
}
|
||||
|
||||
return value1 === value2;
|
||||
}
|
||||
|
||||
function isEqualString(value1: any, value2: any): boolean {
|
||||
const isEmptyOrNullish1 = value1 === undefined || value1 === null || value1 === '';
|
||||
const isEmptyOrNullish2 = value2 === undefined || value2 === null || value2 === '';
|
||||
return (isEmptyOrNullish1 && isEmptyOrNullish2) || value1 === value2;
|
||||
}
|
||||
|
||||
function isEqualNumber(value1: any, value2: any): boolean {
|
||||
const isZeroOrNullish1 = value1 === undefined || value1 === null || value1 === 0;
|
||||
const isZeroOrNullish2 = value2 === undefined || value2 === null || value2 === 0;
|
||||
return (isZeroOrNullish1 && isZeroOrNullish2) || value1 === value2;
|
||||
}
|
||||
|
||||
function isEqualBoolean(value1: any, value2: any): boolean {
|
||||
const isFalseOrNullish1 = value1 === undefined || value1 === null || value1 === false;
|
||||
const isFalseOrNullish2 = value2 === undefined || value2 === null || value2 === false;
|
||||
return (isFalseOrNullish1 && isFalseOrNullish2) || value1 === value2;
|
||||
}
|
||||
|
||||
function arraysEqual(arr1: any[] | null | undefined, arr2: any[] | null | undefined): boolean {
|
||||
if (arr1 === arr2) return true;
|
||||
if (arr1 == null || arr2 == null) return false;
|
||||
if (arr1.length !== arr2.length) return false;
|
||||
|
||||
for (let i = 0; i < arr1.length; i++) {
|
||||
if (!areValuesEqual(arr1[i], arr2[i])) return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user