@admin-layout/tailwind-design-pro 10.0.9-alpha.25 → 10.0.9-alpha.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/lib/components/UI/LazyLoadingGoogleMarker.js +107 -0
  2. package/lib/components/UI/LazyLoadingGoogleMarker.js.map +1 -0
  3. package/lib/components/UI/Pagination.d.ts +6 -0
  4. package/lib/components/UI/Pagination.d.ts.map +1 -0
  5. package/lib/components/UI/Pagination.js +59 -0
  6. package/lib/components/UI/Pagination.js.map +1 -0
  7. package/lib/components/UI/ParamSearchResultContainer.d.ts +90 -0
  8. package/lib/components/UI/ParamSearchResultContainer.d.ts.map +1 -0
  9. package/lib/components/UI/ParamSearchResultContainer.js +80 -0
  10. package/lib/components/UI/ParamSearchResultContainer.js.map +1 -0
  11. package/lib/components/UI/PropertyCard.d.ts +24 -0
  12. package/lib/components/UI/PropertyCard.d.ts.map +1 -0
  13. package/lib/components/UI/PropertyCard.js +377 -0
  14. package/lib/components/UI/PropertyCard.js.map +1 -0
  15. package/lib/components/UI/PropertyCardList.d.ts +93 -0
  16. package/lib/components/UI/PropertyCardList.d.ts.map +1 -0
  17. package/lib/components/UI/PropertyCardList.js +41 -0
  18. package/lib/components/UI/PropertyCardList.js.map +1 -0
  19. package/lib/components/UI/PropertyCardOnMap.js +108 -0
  20. package/lib/components/UI/PropertyCardOnMap.js.map +1 -0
  21. package/lib/components/UI/icons/LocationIcon.d.ts +7 -0
  22. package/lib/components/UI/icons/LocationIcon.d.ts.map +1 -0
  23. package/lib/components/UI/icons/LocationIcon.js +18 -0
  24. package/lib/components/UI/icons/LocationIcon.js.map +1 -0
  25. package/lib/components/UI/icons/index.d.ts +2 -0
  26. package/lib/components/UI/icons/index.d.ts.map +1 -0
  27. package/lib/components/UI/index.d.ts +6 -0
  28. package/lib/components/UI/index.d.ts.map +1 -1
  29. package/lib/components/index.js +1 -1
  30. package/lib/config/env-config.d.ts +1 -0
  31. package/lib/config/env-config.d.ts.map +1 -1
  32. package/lib/config/env-config.js +5 -1
  33. package/lib/config/env-config.js.map +1 -1
  34. package/lib/helpers/DynamicIcon.d.ts +7 -4
  35. package/lib/helpers/DynamicIcon.d.ts.map +1 -1
  36. package/lib/helpers/DynamicIcon.js +11 -15
  37. package/lib/helpers/DynamicIcon.js.map +1 -1
  38. package/lib/hooks/index.d.ts +2 -0
  39. package/lib/hooks/index.d.ts.map +1 -1
  40. package/lib/hooks/use-get-current-lat-long.d.ts +18 -0
  41. package/lib/hooks/use-get-current-lat-long.d.ts.map +1 -0
  42. package/lib/hooks/use-get-current-lat-long.js +29 -0
  43. package/lib/hooks/use-get-current-lat-long.js.map +1 -0
  44. package/lib/hooks/useTailwindTheme.js +82 -0
  45. package/lib/hooks/useTailwindTheme.js.map +1 -0
  46. package/package.json +2 -2
@@ -0,0 +1,107 @@
1
+ import {jsx,jsxs}from'react/jsx-runtime';import React__default,{useState,useEffect}from'react';import {PropertyCardOnMap}from'./PropertyCardOnMap.js';import ReactDOMServer from'react-dom/server';import*as path from'@pubngo-stack/icons/lib/rifi-maps/index.js';import*as airbnbPath from'@pubngo-stack/icons/lib/airbnb/airbnbIcons-maps/index.js';import {AdvancedMarker}from'@vis.gl/react-google-maps';const getSvgMapIcon = (types, propertyTypes) => {
2
+ if (!types || types.length === 0) {
3
+ return 'data:image/svg+xml;charset=UTF-8,';
4
+ }
5
+ const icon = propertyTypes.find(item => item.id === types[0])?.icon || '';
6
+ return types.length > 1 ? `${icon}MultiType` : icon;
7
+ };
8
+ const pricesMarker = (price, isHighlighted) => {
9
+ const backgroundColor = isHighlighted ? 'rgb(0, 0, 0)' : 'rgb(255,255,255)';
10
+ const textColor = isHighlighted ? 'rgb(255, 255, 255)' : 'rgb(0, 0, 0)';
11
+ const borderRadius = isHighlighted ? '20' : '15';
12
+ const svgString = `<svg width="84" height="55" viewBox="0 0 84 55" fill="none" xmlns="http://www.w3.org/2000/svg">
13
+ <g filter="url(#filter0_dd_7163_1572)">
14
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M25 1C13.9543 1 5 9.95431 5 21C5 32.0457 13.9543 41 25 41H39.2222L42 46L44.7778 41H59C70.0457 41 79 32.0457 79 21C79 9.95431 70.0457 1 59 1H25Z" fill="${backgroundColor}"/>
15
+ </g>
16
+
17
+
18
+ <text x="42" y="26" font-family="Arial" font-size="14" text-anchor="middle" font-weight="bold" fill="${textColor}">${price || ''}</text>
19
+ <defs>
20
+ <filter id="filter0_dd_7163_1572" x="0" y="0" width="84" height="55" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
21
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
22
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
23
+ <feMorphology radius="${borderRadius}" operator="erode" in="SourceAlpha" result="effect1_dropShadow_7163_1572"/>
24
+ <feOffset dy="2"/>
25
+ <feGaussianBlur stdDeviation="2"/>
26
+ <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0"/>
27
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_7163_1572"/>
28
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
29
+ <feMorphology radius="1" operator="erode" in="SourceAlpha" result="effect2_dropShadow_7163_1572"/>
30
+ <feOffset dy="4"/>
31
+ <feGaussianBlur stdDeviation="3"/>
32
+ <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0"/>
33
+ <feBlend mode="normal" in2="effect1_dropShadow_7163_1572" result="effect2_dropShadow_7163_1572"/>
34
+ <feBlend mode="normal" in="SourceGraphic" in2="effect2_dropShadow_7163_1572" result="shape"/>
35
+ </filter>
36
+ </defs>
37
+ </svg>`;
38
+ return 'data:image/svg+xml;charset=UTF-8,' + encodeURIComponent(svgString);
39
+ };
40
+ const svgToMarkerIcon = async (types, isHighlighted, propertyTypes) => {
41
+ const resultantIcon = getSvgMapIcon(types, propertyTypes);
42
+ let iconPath = resultantIcon.toLowerCase().startsWith('airbnb') ? isHighlighted ? airbnbPath[`${resultantIcon}Dark`] : airbnbPath[`${resultantIcon}Light`] : isHighlighted ? path[`${resultantIcon}Dark`] : path[`${resultantIcon}Light`];
43
+ // New logic to handle the case when iconPath is not found
44
+ if (!iconPath) {
45
+ iconPath = isHighlighted ? airbnbPath['AirbnbApartmentDark'] : airbnbPath['AirbnbApartmentLight'];
46
+ }
47
+ if (typeof iconPath !== 'function') return 'data:image/svg+xml;charset=UTF-8,' + encodeURIComponent(iconPath);
48
+ const svg = ReactDOMServer.renderToString(iconPath({
49
+ width: '50px',
50
+ height: '50px'
51
+ }));
52
+ return 'data:image/svg+xml;charset=UTF-8,' + encodeURIComponent(svg);
53
+ };
54
+ const getMapMarkerIcons = async (room, showPrices, isHighlighted, propertyTypes) => {
55
+ return showPrices ? pricesMarker(room?.preferences?.property?.pricing?.price?.price_breakdown?.details?.summary?.totalBeforeDiscount, isHighlighted) : await svgToMarkerIcon(room.types, isHighlighted, propertyTypes);
56
+ };
57
+ const MarkerImage = React__default.memo(({
58
+ src,
59
+ showPrices
60
+ }) => jsx("img", {
61
+ src: src,
62
+ alt: "Property Marker",
63
+ className: showPrices ? 'w-[84px] h-[40px]' : 'w-[90px] h-[60px]'
64
+ }));
65
+ const LazyLoadingGoogleMarker = props => {
66
+ const {
67
+ property,
68
+ isHighlighted,
69
+ showPrices,
70
+ isActiveMarker,
71
+ onInfoBoxClose,
72
+ onMarkerClick,
73
+ propertyTypes
74
+ } = props;
75
+ const [mapIcon, setMapIcon] = useState('');
76
+ useEffect(() => {
77
+ (async () => {
78
+ const icon = await getMapMarkerIcons(property, showPrices, isHighlighted, propertyTypes);
79
+ setMapIcon(icon);
80
+ })();
81
+ }, [isHighlighted, showPrices]);
82
+ if (!property) {
83
+ return;
84
+ }
85
+ return jsx(AdvancedMarker, {
86
+ position: {
87
+ lat: property.address.latitude_around,
88
+ lng: property.address.longitude_around
89
+ },
90
+ title: property.name,
91
+ onClick: onMarkerClick,
92
+ zIndex: isHighlighted ? 999 : 1,
93
+ children: jsxs("div", {
94
+ className: "relative cursor-pointer transform -translate-x-1/2 -translate-y-1/2",
95
+ children: [mapIcon && jsx(MarkerImage, {
96
+ src: mapIcon,
97
+ showPrices: showPrices
98
+ }), isActiveMarker && jsx("div", {
99
+ className: "absolute bottom-0 left-1/2 transform -translate-x-1/2 bg-white p-2.5 rounded-2xl z-[1000] w-[300px] shadow-[0_12px_24px_0_rgba(0,0,0,0.1),_0_2px_8px_0_rgba(0,0,0,0.05)]",
100
+ children: jsx(PropertyCardOnMap, {
101
+ room: property,
102
+ isSaved: false
103
+ })
104
+ })]
105
+ })
106
+ });
107
+ };export{LazyLoadingGoogleMarker};//# sourceMappingURL=LazyLoadingGoogleMarker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LazyLoadingGoogleMarker.js","sources":["../../../src/components/UI/LazyLoadingGoogleMarker.tsx"],"sourcesContent":[null],"names":["React","_jsx"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare const Pagination: ({ currentPage, totalPages, onPageChange }: {
2
+ currentPage: any;
3
+ totalPages: any;
4
+ onPageChange: any;
5
+ }) => import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=Pagination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../../src/components/UI/Pagination.tsx"],"names":[],"mappings":"AAGA,eAAO,MAAM,UAAU;;;;6CA8DtB,CAAC"}
@@ -0,0 +1,59 @@
1
+ import {jsx}from'react/jsx-runtime';import {Flex,Button}from'@chakra-ui/react';const Pagination = ({
2
+ currentPage,
3
+ totalPages,
4
+ onPageChange
5
+ }) => {
6
+ const renderPageNumbers = () => {
7
+ const pageNumbers = [];
8
+ const maxPagesToShow = 4; // Number of pages to show in the middle
9
+ // Helper function to add page button
10
+ const addPageButton = pageNum => jsx(Button, {
11
+ variant: currentPage === pageNum ? 'solid' : 'ghost',
12
+ colorScheme: currentPage === pageNum ? 'blue' : 'gray',
13
+ size: "sm",
14
+ onClick: () => onPageChange(pageNum),
15
+ mx: 2,
16
+ children: pageNum
17
+ }, pageNum);
18
+ // Add first page
19
+ pageNumbers.push(addPageButton(1));
20
+ // Add ellipsis if needed
21
+ if (currentPage > maxPagesToShow) {
22
+ pageNumbers.push(jsx(Button, {
23
+ variant: "ghost",
24
+ colorScheme: "gray",
25
+ size: "sm",
26
+ isDisabled: true,
27
+ children: "..."
28
+ }, "ellipsis-start"));
29
+ }
30
+ // Calculate start and end page numbers
31
+ const startPage = Math.max(2, currentPage - 1);
32
+ const endPage = Math.min(totalPages - 1, currentPage + 2);
33
+ // Add middle page numbers
34
+ for (let i = startPage; i <= endPage; i++) {
35
+ pageNumbers.push(addPageButton(i));
36
+ }
37
+ // Add ellipsis if needed
38
+ if (endPage < totalPages - 1) {
39
+ pageNumbers.push(jsx(Button, {
40
+ variant: "ghost",
41
+ colorScheme: "gray",
42
+ size: "sm",
43
+ isDisabled: true,
44
+ children: "..."
45
+ }, "ellipsis-end"));
46
+ }
47
+ // Add last page
48
+ if (totalPages > 1) {
49
+ pageNumbers.push(addPageButton(totalPages));
50
+ }
51
+ return pageNumbers;
52
+ };
53
+ return jsx(Flex, {
54
+ justify: "center",
55
+ align: "center",
56
+ mt: 8,
57
+ children: renderPageNumbers()
58
+ });
59
+ };export{Pagination};//# sourceMappingURL=Pagination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Pagination.js","sources":["../../../src/components/UI/Pagination.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"+EAGO,MAAM,UAAU,GAAG,CAAC;aACjB;YACI;AACN,EAAA;;AAGA,EAAA,MAAA,iBAAmB,GAAA,MAAI;UAaN,WAAA,GAAA,EAAA;UACN,cAAK,GAAC,CAAA,CAAA;;AAGjB,IAAA,MAAA,aAAe,GAAG,OAAc,IAAAA,GAAA,CAAE,MAAC,EAAA;aACpB,EAAA,gBACP,UAA6B,OAAA,GAAO,OAAC;iBAI5C,EAAA,WAAA,KAAA,OAAA,GAAA,MAAA,GAAA,MAAA;UAEsC,EAAA,IAAA;AACvC,MAAA,OAAA,EAAe,MAAA,YAAW,CAAA,OAAe,CAAA;AACzC,MAAA,EAAA,EAAA,CAAA;cAE0B,EAAA;AAC1B,KAAA,EAAA,OAAS,CAAA;;eAER,CAAA,IAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA;;AAGD,IAAA,IAAA,WAAW,GAAG,cAAc,EAAE;iBACf,CAAA,IAAA,CAAAA,IAAK,MACX;QAIT,OAAC,EAAA,OAAA;QAED,WAAgB,EAAA,MAAA;AAChB,QAAA,IAAI,EAAU,IAAA;kBACC,EAAA,IAAC;QAChB,QAAC,EAAA;AAED,OAAA,EAAA,iBAAkB,CAAC;AACvB;;AAOJ,IAAE,MAAA,SAAA,GAAA,IAAA,CAAA,GAAA,CAAA,CAAA,EAAA,WAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,90 @@
1
+ import { MutableRefObject } from 'react';
2
+ import { GraphQLError } from 'graphql';
3
+ interface IProperty {
4
+ id: string;
5
+ title: string;
6
+ types: string[];
7
+ name: string;
8
+ description?: string;
9
+ introduction?: string;
10
+ address: any;
11
+ location: string;
12
+ images: any;
13
+ thumbnailUrl?: string;
14
+ thumbnailAlt?: string;
15
+ verificationDocuments?: any;
16
+ info?: any;
17
+ user: any;
18
+ status?: any;
19
+ errors?: any;
20
+ preferences?: any;
21
+ orgName?: string;
22
+ serviceConfiguration?: any;
23
+ totalReview?: number;
24
+ totalStar?: number;
25
+ reviews?: any;
26
+ comments?: any;
27
+ userLikes?: any;
28
+ calendarEvents?: any[];
29
+ isUserLike?: boolean;
30
+ formattedPrice?: number;
31
+ timeZone: string;
32
+ createdAt: any;
33
+ updatedAt?: any;
34
+ stats?: any;
35
+ guideBookId?: string;
36
+ guestSharing?: any;
37
+ }
38
+ interface IAirbnbProperty {
39
+ id: string;
40
+ title: string;
41
+ types: string[];
42
+ name: string;
43
+ description?: string;
44
+ introduction?: string;
45
+ address: any;
46
+ location: string;
47
+ images: any;
48
+ thumbnailUrl?: string;
49
+ thumbnailAlt?: string;
50
+ verificationDocuments?: any;
51
+ info?: any;
52
+ user: any;
53
+ status?: any;
54
+ errors?: any;
55
+ preferences?: any;
56
+ orgName?: string;
57
+ serviceConfiguration?: any;
58
+ totalReview?: number;
59
+ totalStar?: number;
60
+ reviews?: any;
61
+ comments?: any;
62
+ userLikes?: any;
63
+ calendarEvents?: any[];
64
+ isUserLike?: boolean;
65
+ formattedPrice?: number;
66
+ timeZone: string;
67
+ createdAt: any;
68
+ updatedAt?: any;
69
+ stats?: any;
70
+ guideBookId?: string;
71
+ guestSharing?: any;
72
+ }
73
+ interface IParamSearchResultContainer {
74
+ data: IProperty[] | IAirbnbProperty[];
75
+ error: GraphQLError | Error;
76
+ listInnerRef: MutableRefObject<HTMLDivElement>;
77
+ handleSetFocus?: (index: number) => void;
78
+ handleRemoveFocus?: (index: number) => void;
79
+ handleLike?: (index: number) => void;
80
+ extraIcons?: any[];
81
+ currentPage: number;
82
+ totalPages: number;
83
+ totalPropertiesCount: number;
84
+ onPageChange: (page: number) => void;
85
+ likeBtnLoading?: boolean;
86
+ propertyTypes?: any[];
87
+ }
88
+ export declare const ParamSearchResultContainer: (props: IParamSearchResultContainer) => import("react/jsx-runtime").JSX.Element;
89
+ export {};
90
+ //# sourceMappingURL=ParamSearchResultContainer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParamSearchResultContainer.d.ts","sourceRoot":"","sources":["../../../src/components/UI/ParamSearchResultContainer.tsx"],"names":[],"mappings":"AAAA,OAAc,EAA6C,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAI3F,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAOvC,UAAU,SAAS;IACf,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,GAAG,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,GAAG,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qBAAqB,CAAC,EAAE,GAAG,CAAC;IAC5B,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,IAAI,EAAE,GAAG,CAAC;IACV,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,GAAG,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,cAAc,CAAC,EAAE,GAAG,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,GAAG,CAAC;IACf,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,GAAG,CAAC;CACtB;AACD,UAAU,eAAe;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,GAAG,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,GAAG,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qBAAqB,CAAC,EAAE,GAAG,CAAC;IAC5B,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,IAAI,EAAE,GAAG,CAAC;IACV,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,GAAG,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,cAAc,CAAC,EAAE,GAAG,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,GAAG,CAAC;IACf,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,GAAG,CAAC;CACtB;AAED,UAAU,2BAA2B;IACjC,IAAI,EAAE,SAAS,EAAE,GAAG,eAAe,EAAE,CAAC;IAEtC,KAAK,EAAE,YAAY,GAAG,KAAK,CAAC;IAI5B,YAAY,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;IAI/C,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC;CACzB;AAID,eAAO,MAAM,0BAA0B,UAAW,2BAA2B,4CA0E5E,CAAC"}
@@ -0,0 +1,80 @@
1
+ import {jsxs,jsx}from'react/jsx-runtime';import {useEffect}from'react';import {useTranslation}from'react-i18next';import {PropertyCardList}from'./PropertyCardList.js';import {Pagination}from'./Pagination.js';const ParamSearchResultContainer = props => {
2
+ const {
3
+ data,
4
+ error,
5
+ currentPage,
6
+ totalPropertiesCount,
7
+ totalPages,
8
+ onPageChange,
9
+ handleSetFocus,
10
+ handleRemoveFocus,
11
+ handleLike,
12
+ likeBtnLoading,
13
+ propertyTypes,
14
+ extraIcons
15
+ } = props;
16
+ const {
17
+ t
18
+ } = useTranslation(['common']);
19
+ useEffect(() => {
20
+ if (error) {
21
+ // Create a tailwind toast notification
22
+ const toastDiv = document.createElement('div');
23
+ toastDiv.className = 'fixed top-4 right-4 z-50 w-96 rounded-lg bg-red-50 border border-red-400 p-4 shadow-md';
24
+ toastDiv.innerHTML = `
25
+ <div class="flex justify-between">
26
+ <div class="flex">
27
+ <div class="mr-2 text-red-400">
28
+ <svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
29
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />
30
+ </svg>
31
+ </div>
32
+ <div>
33
+ <p class="font-medium text-red-800">${t('property.something_went_wrong')}</p>
34
+ <p class="text-sm text-red-800">${error.message}</p>
35
+ </div>
36
+ </div>
37
+ <button class="text-red-800 hover:bg-gray-100 rounded-full p-1" onclick="this.parentElement.parentElement.remove()">
38
+ <svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4" fill="none" viewBox="0 0 24 24" stroke="currentColor">
39
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" />
40
+ </svg>
41
+ </button>
42
+ </div>
43
+ `;
44
+ document.body.appendChild(toastDiv);
45
+ setTimeout(() => {
46
+ toastDiv.remove();
47
+ }, 5000);
48
+ }
49
+ }, [error]);
50
+ return jsxs("div", {
51
+ className: "flex flex-col self-stretch relative w-full px-3 sm:px-5 lg:px-7",
52
+ children: [jsx("div", {
53
+ className: "text-lg font-semibold",
54
+ children: t('property.results_on')
55
+ }), jsx("div", {
56
+ className: "text-2xl font-bold",
57
+ children: jsx("span", {
58
+ className: "text-lg ml-5",
59
+ children: t('property.results', {
60
+ totalCount: totalPropertiesCount
61
+ })
62
+ })
63
+ }), jsx(PropertyCardList, {
64
+ rooms: data,
65
+ setFocus: handleSetFocus,
66
+ setBlur: handleRemoveFocus,
67
+ handleLike: handleLike,
68
+ likeBtnLoading: likeBtnLoading,
69
+ propertyTypes: propertyTypes,
70
+ extraIcons: extraIcons
71
+ }), totalPages > 1 && jsx("div", {
72
+ className: "mt-8 mb-8",
73
+ children: jsx(Pagination, {
74
+ currentPage: currentPage,
75
+ totalPages: totalPages,
76
+ onPageChange: onPageChange
77
+ })
78
+ })]
79
+ });
80
+ };export{ParamSearchResultContainer};//# sourceMappingURL=ParamSearchResultContainer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParamSearchResultContainer.js","sources":["../../../src/components/UI/ParamSearchResultContainer.tsx"],"sourcesContent":[null],"names":[],"mappings":"gNA2Ga,MAAA,0BAA0B,GAAG,KAAC,IAAsC;QACvE;IAeN,IAAM;IAEN,KAAS;eACD;wBACuC;cACjC;AACN,IAAA,YAAA;AACI,IAAA,cAAA;qBACK;;;;;;;;;;AAUyC,IAAA,IAAA,KAAA,EAAA;;;;;;;;;;AAUlD;;;gEAIS,EAAA,CAAA,CAAA,+BAAA,CAAA,CAAA;4DACZ,EAAA,KAAA,CAAA,OAAA,CAAA;AACL;;AAwBJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ interface IPropertyType {
3
+ id: string;
4
+ icon: string;
5
+ description: string;
6
+ category: string;
7
+ name: string;
8
+ imageKey: string;
9
+ created_at: string;
10
+ }
11
+ type PropertyCardProps = {
12
+ room: any;
13
+ isSaved: boolean;
14
+ setFocus: (index: number) => void;
15
+ setBlur: (index: number) => void;
16
+ handleLike: (index: number) => void;
17
+ authenticated: boolean;
18
+ likeBtnLoading: boolean;
19
+ propertyTypes: IPropertyType[];
20
+ extraIcons: any[];
21
+ };
22
+ export declare const PropertyCard: ({ room, isSaved, setFocus, setBlur, handleLike, likeBtnLoading, propertyTypes, authenticated, extraIcons, ...props }: PropertyCardProps & React.HTMLAttributes<HTMLDivElement>) => import("react/jsx-runtime").JSX.Element;
23
+ export {};
24
+ //# sourceMappingURL=PropertyCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertyCard.d.ts","sourceRoot":"","sources":["../../../src/components/UI/PropertyCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAezE,UAAU,aAAa;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,KAAK,iBAAiB,GAAG;IACrB,IAAI,EAAE,GAAG,CAAC;IACV,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,aAAa,EAAE,CAAC;IAC/B,UAAU,EAAE,GAAG,EAAE,CAAC;CACrB,CAAC;AAgEF,eAAO,MAAM,YAAY,yHAWtB,iBAAiB,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,4CA0W1D,CAAC"}