nestiq-component-library 1.0.45 → 1.0.51
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.
- package/dist/components/FloorPlanPopup/FloorPlanPopup.d.ts +7 -0
- package/dist/components/ImageListPopup/ImageListPopup.d.ts +1 -0
- package/dist/components/Popup/Popup.d.ts +1 -0
- package/dist/components/PropertyCard/PropertyCard.d.ts +1 -2
- package/dist/components/PropertyImageList/PropertyImageList.d.ts +1 -0
- package/dist/components/SharePopup/SharePopup.d.ts +4 -0
- package/dist/components/ToastWrapper/ToastWrapper.d.ts +4 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.es.js +98 -34
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +100 -32
- package/dist/index.js.map +1 -1
- package/package.json +4 -1
- package/src/components/FloorPlanPopup/FloorPlanPopup.css +3 -0
- package/src/components/FloorPlanPopup/FloorPlanPopup.tsx +83 -0
- package/src/components/ImageListPopup/ImageListPopup.css +0 -24
- package/src/components/ImageListPopup/ImageListPopup.tsx +3 -2
- package/src/components/Popup/Popup.css +0 -13
- package/src/components/Popup/Popup.tsx +1 -0
- package/src/components/PropertyCard/PropertyCard.css +6 -5
- package/src/components/PropertyCard/PropertyCard.tsx +29 -30
- package/src/components/PropertyDetailsHeader/PropertyDetailsHeader.tsx +2 -6
- package/src/components/PropertyImageList/PropertyImageList.tsx +33 -8
- package/src/components/SharePopup/{PopUp.css → SharePopup.css} +0 -14
- package/src/components/SharePopup/{PopUp.tsx → SharePopup.tsx} +11 -12
- package/src/components/ToastWrapper/ToastWrapper.tsx +25 -0
- package/src/index.tsx +8 -1
- package/src/styles/common.css +12 -0
- package/src/assets/images/Logo-Nestiq_black.svg +0 -7
- package/src/assets/images/arrow-right-short.svg +0 -3
- package/src/assets/images/arrow-right.svg +0 -10
- package/src/assets/images/close_white.png +0 -0
- package/src/assets/images/dropdownIcon.svg +0 -16
- package/src/assets/images/facebook_icon.svg +0 -3
- package/src/assets/images/google_icon.svg +0 -10
- package/src/assets/images/heartIcon.svg +0 -3
- package/src/assets/images/icon-close-white.webp +0 -0
- package/src/assets/images/icon_checkmark.svg +0 -10
- package/src/assets/images/icon_close 2.png +0 -0
- package/src/assets/images/icon_share 1.svg +0 -3
- package/src/assets/images/icon_user.png +0 -0
- package/src/assets/images/left arrow.svg +0 -16
- package/src/assets/images/left-arrow.svg +0 -4
- package/src/assets/images/mail-icon.png +0 -0
- package/src/assets/images/no-image-icon.png +0 -0
- package/src/assets/images/right arrow.svg +0 -16
- package/src/assets/images/right-arrow.svg +0 -4
- package/src/assets/images/warning.svg +0 -11
- package/src/assets/images/x.svg +0 -3
- package/src/components/PropertyCard/PropertyDaet.json +0 -1210
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/components/Button/Button.tsx","../src/assets/images/icon_close_2.png","../node_modules/style-inject/dist/style-inject.es.js","../src/components/Popup/Popup.tsx","../src/assets/images/icon_share_1.svg","../src/assets/images/locationIconBlack.svg","../src/assets/Images/envelope-fill.svg","../src/assets/Images/facebook.svg","../src/assets/Images/icon_close_2.png","../src/assets/Images/linkedin.svg","../src/assets/Images/twitter-x.svg","../src/assets/Images/whatsapp.svg","../src/components/SharePopup/PopUp.tsx","../src/components/PropertyDetailsHeader/PropertyDetailsHeader.tsx","../src/assets/Images/Icon_rightArrow.svg","../src/assets/Images/blackarrow-Right.svg","../src/assets/Images/blckarrow-Left.svg","../src/assets/Images/chevron-left.svg","../src/assets/Images/icon_gallery.svg","../src/assets/Images/icon_map.svg","../src/assets/Images/layer_icon.svg","../src/assets/images/close.png","../src/components/ImageListPopup/ImageListPopup.tsx","../src/components/PropertyImageList/PropertyImageList.tsx","../src/assets/Images/LayersIcon.svg","../src/assets/images/locationIcon.svg","../src/assets/Images/default-property.jpg","../src/components/PropertyCard/PropertyCard.tsx"],"sourcesContent":["import React from 'react';\r\n\r\ninterface ButtonProps {\r\n label: string;\r\n}\r\n\r\nconst Button: React.FC<ButtonProps> = ({ label }) => {\r\n return <button>{label}</button>;\r\n};\r\n\r\nexport default Button;\r\n","export default \"/static/media/icon_close_2.e41bb9a4db48e048.png\"","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import React from \"react\";\r\nimport closeIcon from \"../../assets/images/icon_close_2.png\";\r\nimport \"./Popup.css\";\r\n\r\ninterface PopupProps {\r\n children: React.ReactNode;\r\n onCloseClick: () => void;\r\n}\r\n\r\nconst Popup: React.FC<PopupProps> = ({ onCloseClick, children }) => {\r\n return (\r\n <div className=\"popup-overlay\">\r\n <div className=\"shareSection col-12 d-flex position-relative flex-column mx-auto justify-content-center col-5 col-lg-6 d-flex gap-4\">\r\n <div className=\"end-0 top-0 position-absolute \">\r\n <img\r\n src={closeIcon}\r\n alt=\"close\"\r\n className=\"closeIcon me-2\"\r\n onClick={onCloseClick}\r\n />\r\n </div>\r\n {children}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Popup;\r\n","export default \"/static/media/icon_share_1.b9ec05630dc1087e.svg\"","export default \"/static/media/locationIconBlack.eb8e9e9226b43573.svg\"","export default \"/static/media/envelope-fill.6669c9d64183941c.svg\"","export default \"/static/media/facebook.ce73eacbfffe8a27.svg\"","export default \"/static/media/icon_close_2.e41bb9a4db48e048.png\"","export default \"/static/media/linkedin.7539333145b03678.svg\"","export default \"/static/media/twitter-x.48a4ac3f560f0a62.svg\"","export default \"/static/media/whatsapp.28e6b0b24adc9289.svg\"","import React, { useRef, useState } from \"react\";\r\nimport email from \"../../assets/Images/envelope-fill.svg\";\r\nimport facebook from \"../../assets/Images/facebook.svg\";\r\nimport x from \"../../assets/Images/icon_close_2.png\";\r\nimport linkedln from \"../../assets/Images/linkedin.svg\";\r\nimport Xtwitter from \"../../assets/Images/twitter-x.svg\";\r\nimport whatsapp from \"../../assets/Images/whatsapp.svg\";\r\nimport \"./PopUp.css\";\r\n\r\ninterface Popupprops {\r\n onClick: () => void;\r\n}\r\nexport default function PopUp(props: Popupprops) {\r\n const [showPopUp, setShowPopUp] = useState(true);\r\n\r\n const handleClose = () => {\r\n setShowPopUp(false);\r\n };\r\n const urlInputRef = useRef<HTMLInputElement | null>(null);\r\n\r\n const copyToClipboard = () => {\r\n urlInputRef.current!.select();\r\n document.execCommand(\"copy\");\r\n // toast.success(\"URL copied to clipboard!\");\r\n };\r\n\r\n return (\r\n <div>\r\n {showPopUp && (\r\n <div className=\"popup-overlay\">\r\n <div className=\"shareSection col-12 d-flex position-relative flex-column mx-auto justify-content-center col-5 col-lg-6 d-flex gap-4\">\r\n <div className=\"end-0 top-0 position-absolute \">\r\n <img\r\n src={x}\r\n alt=\"close\"\r\n className=\"closeIcon me-2\"\r\n onClick={handleClose}\r\n />\r\n </div>\r\n <div className=\"popUpHeader col-lg-12 d-flex justify-content-center mb-2\">\r\n Jetzt teilen und weitersagen!\r\n </div>\r\n <div className=\"h-25 col-lg-12 socialMediaIconsSection d-flex flex-row align-items-center justify-content-center mx-auto\">\r\n <a\r\n href=\"https://twitter.com/intent/tweet?url=https://www.nestiq.de&text=Nestiq\"\r\n className=\"text-decoration-none\"\r\n target=\"blank\"\r\n >\r\n <div className=\" flex-column d-flex align-items-center\">\r\n <img\r\n src={Xtwitter}\r\n alt=\"twitter\"\r\n className=\"socialMediaIcons\"\r\n />\r\n <span className=\"socialMediaIconText\">Xtwitter</span>\r\n </div>\r\n </a>\r\n\r\n <a\r\n href=\"https://www.facebook.com/sharer/sharer.php?u=https://www.nestiq.de\"\r\n className=\"text-decoration-none\"\r\n target=\"blank\"\r\n >\r\n <div className=\" flex-column d-flex align-items-center\">\r\n <img\r\n src={facebook}\r\n alt=\"facebook\"\r\n className=\"socialMediaIcons \"\r\n />\r\n <span className=\"socialMediaIconText\">Facebook</span>\r\n </div>\r\n </a>\r\n\r\n <a\r\n href=\"https://api.whatsapp.com/send?text=https://www.nestiq.de\"\r\n target=\"blank\"\r\n className=\"text-decoration-none\"\r\n >\r\n <div className=\" flex-column d-flex align-items-center\">\r\n <img\r\n src={whatsapp}\r\n alt=\"whatsapp\"\r\n className=\" socialMediaIcons\"\r\n />\r\n <span className=\"socialMediaIconText\">WhatsApp</span>\r\n </div>\r\n </a>\r\n\r\n <a\r\n href=\"https://www.linkedin.com/shareArticle?mini=true&url=https://www.nestiq.de\"\r\n target=\"blank\"\r\n className=\"text-decoration-none\"\r\n >\r\n <div className=\" flex-column d-flex align-items-center\">\r\n <img\r\n src={linkedln}\r\n alt=\"linkedin\"\r\n className=\" socialMediaIcons\"\r\n />\r\n <span className=\"socialMediaIconText\">LinkedIn</span>\r\n </div>\r\n </a>\r\n\r\n <a\r\n href=\"https://www.nestiq.de\"\r\n target=\"blank\"\r\n className=\"text-decoration-none\"\r\n >\r\n <div className=\" flex-column d-flex align-items-center\">\r\n <img src={email} alt=\"email\" className=\" socialMediaIcons\" />\r\n <span className=\"socialMediaIconText\">E-mail</span>\r\n </div>\r\n </a>\r\n </div>\r\n <div className=\"col-10 mx-auto\">\r\n <div className=\" row align-items-center position-relative\">\r\n <input\r\n ref={urlInputRef}\r\n type=\"text\"\r\n className=\"popup_search-input rounded-4 border border-0 \"\r\n placeholder=\"Enter link here\"\r\n value={window.location.href}\r\n readOnly\r\n />\r\n <button\r\n onClick={copyToClipboard}\r\n className=\"popupcustom-button border border-0 position-absolute me-2 col-lg-3 col-md-3 col-sm-3 rounded-4 fs-6\"\r\n type=\"button\"\r\n id=\"button\"\r\n >\r\n <strong>Kopieren</strong>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\n// import { FormattedMessage } from \"react-intl\";\r\nimport ShareIcon from \"../../assets/images/icon_share_1.svg\";\r\nimport locationIcon from \"../../assets/images/locationIconBlack.svg\";\r\nimport \"./PropertyDetailsHeader.css\";\r\nimport PopUp from \"../SharePopup/PopUp\";\r\n\r\nexport interface PopupProps {\r\n property: {\r\n city: string;\r\n constructedArea: string;\r\n rooms: string;\r\n propertyArea: string;\r\n askingPrice: string;\r\n };\r\n title: string;\r\n}\r\n\r\nexport default function PropertyDetailsHeader(props: PopupProps) {\r\n const [showPopUp, setShowPopUp] = useState(false);\r\n\r\n const handlePopUp = () => {\r\n setShowPopUp(!showPopUp);\r\n };\r\n\r\n return (\r\n <div className=\"Pheader compact d-flex col-12 col-lg-12 position-relative mt-5 \">\r\n <div className=\"header_Text d-flex col-lg-7 col-md-9 mt-4 ms-4 \">\r\n <strong>{props.title ?? \"-\"}</strong>\r\n </div>\r\n <div className=\"header_Text text-truncate col-lg-6 col-md-7 d-flex flex-row position-absolute ms-4\">\r\n <img src={locationIcon} className=\"vector me-2\" alt=\"location Icon\" />\r\n\r\n <div className=\"propText text-truncate col-lg-6 col-md-6 d-flex align-items-center\">\r\n {props.property.city}\r\n </div>\r\n </div>\r\n <div className=\"d-flex col-lg-5 col-md-6 col-sm-5 justify-content-end position-absolute end-0 mt-4\">\r\n {/* <img src={Hearticon} alt=\"Location Icon\" className=\"v_share me-3\" /> */}\r\n <img\r\n src={ShareIcon}\r\n alt=\"share icon\"\r\n className=\"v_share me-3\"\r\n onClick={handlePopUp}\r\n />\r\n </div>\r\n <div className=\"fetch_section d-flex align-items-center flex-row col-lg-5 col-md-6 col-sm-5 justify-content-end position-absolute end-0\">\r\n {props && (\r\n <div className=\" propText col-lg-3 col-md-3 h-100 d-flex align-items-center justify-content-center \">\r\n {props.property.askingPrice} <br />\r\n Kaufpreis\r\n </div>\r\n )}\r\n {props && (\r\n <div className=\"propText col-lg-3 col-md-3 d-flex h-100 align-items-center justify-content-center\">\r\n {props.property.constructedArea} m² <br />\r\n Wohnfläche\r\n {/* <FormattedMessage id=\"LIVING_SPACE\" /> */}\r\n </div>\r\n )}\r\n {props && (\r\n <div className=\"propText col-lg-3 col-md-3 d-flex h-100 align-items-center justify-content-center\">\r\n {props.property.rooms} <br />\r\n Zimmer\r\n {/* <FormattedMessage id=\"ROOMS\" /> */}\r\n </div>\r\n )}\r\n {props && (\r\n <div className=\"propText col-lg-3 col-md-3 d-flex h-100 align-items-center justify-content-center\">\r\n {props.property.propertyArea} m²\r\n <br />\r\n Grundstück\r\n {/* <FormattedMessage id=\"Grundstück\" /> */}\r\n </div>\r\n )}\r\n </div>\r\n {showPopUp && (\r\n <PopUp\r\n onClick={handlePopUp}\r\n />\r\n )}\r\n </div>\r\n );\r\n}\r\n","export default \"/static/media/Icon_rightArrow.bced4a705c07148d.svg\"","export default \"/static/media/blackarrow-Right.e585ae62dd55abae.svg\"","export default \"/static/media/blckarrow-Left.e2134741aa368d30.svg\"","export default \"/static/media/chevron-left.04f0a7f16b745c1a.svg\"","export default \"/static/media/icon_gallery.269b721daf2ca907.svg\"","export default \"/static/media/icon_map.2318ec664c3e615e.svg\"","export default \"/static/media/layer_icon.9b56c187199c44b5.svg\"","export default \"/static/media/close.b5ce9141e80c688b.png\"","import \"./ImageListPopup.css\";\r\nimport React, { useRef, useState } from \"react\";\r\nimport blcIconArrowRight from \"../../assets/Images/blackarrow-Right.svg\";\r\nimport blcIconArrowLeft from \"../../assets/Images/blckarrow-Left.svg\";\r\nimport iconClose from \"../../assets/images/close.png\";\r\n\r\ninterface PopupProps {\r\n pictureUrls: { title: string; url: string }[];\r\n}\r\n\r\nexport default function ImageListPopup(props: PopupProps) {\r\n const [showPopUp, setShowPopUp] = useState(true);\r\n const [currentImageIndex, setCurrentImageIndex] = useState(0);\r\n const imageListRef = useRef<HTMLDivElement | null>(null);\r\n\r\n const handleArrowClickInMainImage = (direction: any) => {\r\n if (props.pictureUrls.length === 0) return;\r\n\r\n let newIndex = currentImageIndex;\r\n if (direction === \"left\") {\r\n newIndex =\r\n (currentImageIndex - 1 + props.pictureUrls.length) %\r\n props.pictureUrls.length;\r\n } else if (direction === \"right\") {\r\n newIndex = (currentImageIndex + 1) % props.pictureUrls.length;\r\n }\r\n\r\n setCurrentImageIndex(newIndex);\r\n\r\n imageListRef.current!.scrollTo({\r\n left: newIndex * 150,\r\n behavior: \"smooth\",\r\n });\r\n };\r\n\r\n const handleClose = () => {\r\n setShowPopUp(false);\r\n };\r\n\r\n return (\r\n <div>\r\n {showPopUp && (\r\n <div className=\"popup-overlay\">\r\n <div className=\" d-flex w-50 flex-column col-6 \">\r\n <div className=\"d-flex align-self-end me-5 mt-5\">\r\n <img\r\n src={iconClose}\r\n alt=\"close\"\r\n className=\"closeIcon mt-5\"\r\n onClick={handleClose}\r\n />\r\n </div>\r\n <span className=\"text-white align-self-center\">\r\n {props.pictureUrls[currentImageIndex].title}\r\n </span>\r\n <div className=\"d-flex justify-content-center\">\r\n <div className=\"p-2 bd-highlight align-self-center align-items-center me-5\">\r\n <div\r\n className=\"rounded-circle border onImageArrow start-0 d-flex \"\r\n role=\"button\"\r\n onClick={() => handleArrowClickInMainImage(\"left\")}\r\n >\r\n <img\r\n src={blcIconArrowLeft}\r\n className=\"blackArrow align-self-center\"\r\n alt=\"Left Arrow\"\r\n />\r\n </div>\r\n </div>\r\n <div className=\"p-2 bd-highlight\">\r\n <div\r\n className=\" rounded-5 mainImage \"\r\n style={{\r\n backgroundImage: `url(${props.pictureUrls[currentImageIndex].url})`,\r\n height: \"350px\",\r\n width: \"600px\",\r\n backgroundSize: \"cover\",\r\n backgroundPosition: \"center\",\r\n }}\r\n ></div>\r\n </div>\r\n <div className=\"p-2 bd-highlight align-self-center ms-5\">\r\n {\" \"}\r\n <div\r\n role=\"button\"\r\n className=\"rounded-circle border onImageArrow d-flex justify-content-center\"\r\n onClick={() => handleArrowClickInMainImage(\"right\")}\r\n >\r\n <img\r\n src={blcIconArrowRight}\r\n className=\"blackArrow align-self-center\"\r\n alt=\"Right Arrow\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"d-flex flex-row\">\r\n {/* Arrows on the main image */}\r\n </div>\r\n <div className=\"d-flex flex-row gap-4 w-100 secondList \">\r\n <div className=\"col-lg-12 d-flex flex-row p-1 align-self-center mt-5\">\r\n <div className=\"col-12 position-relative d-flex justify-content-center\">\r\n <div\r\n className=\"col-lg-10 rounded-3 h-100 w-100 d-flex flex-row gap-2 overflow-auto \"\r\n ref={imageListRef}\r\n >\r\n {props.pictureUrls.length > 0 && (\r\n <div className=\"col-lg-5 h-100 w-25 d-flex gap-4 flex-row rounded-3\">\r\n {props.pictureUrls.map((picture, index) => (\r\n <div\r\n key={index}\r\n className=\"col-lg-12 h-100 d-flex\"\r\n onClick={() => {\r\n setCurrentImageIndex(index);\r\n imageListRef.current!.scrollTo({\r\n left: index * 150,\r\n behavior: \"smooth\",\r\n });\r\n }}\r\n role=\"button\"\r\n >\r\n <img\r\n src={picture.url}\r\n alt={`Image ${index + 1}`}\r\n className=\"col-12 h-100 rounded-3 object-fit-cover\"\r\n />\r\n </div>\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n","import React, { useRef, useState } from \"react\";\r\nimport iconArrowRight from \"../../assets/Images/Icon_rightArrow.svg\";\r\nimport blcIconArrowRight from \"../../assets/Images/blackarrow-Right.svg\";\r\nimport blcIconArrowLeft from \"../../assets/Images/blckarrow-Left.svg\";\r\nimport iconArrowLeft from \"../../assets/Images/chevron-left.svg\";\r\nimport iconGallery from \"../../assets/Images/icon_gallery.svg\";\r\nimport iconMap from \"../../assets/Images/icon_map.svg\";\r\nimport iconLayers from \"../../assets/Images/layer_icon.svg\";\r\nimport \"./PropertyImageList.css\";\r\nimport ImageListPopup from \"../ImageListPopup/ImageListPopup\";\r\nimport PopupProps from \"../ImageListPopup/ImageListPopup\";\r\n\r\ninterface PopupProps {\r\n pictureUrls: { title: string; url: string }[];\r\n}\r\nexport default function PropertyImageList(prop: PopupProps) {\r\n const [currentImageIndex, setCurrentImageIndex] = useState(0);\r\n const [isImagePopupOpen, setIsImagePopupOpen] = useState(false);\r\n const imageListRef = useRef<HTMLDivElement | null>(null);\r\n\r\n const handleArrowClickInMainImage = (direction: any) => {\r\n if (prop.pictureUrls.length === 0) return;\r\n\r\n let newIndex = currentImageIndex;\r\n if (direction === \"left\") {\r\n newIndex =\r\n (currentImageIndex - 1 + prop.pictureUrls.length) %\r\n prop.pictureUrls.length;\r\n } else if (direction === \"right\") {\r\n newIndex = (currentImageIndex + 1) % prop.pictureUrls.length;\r\n }\r\n\r\n setCurrentImageIndex(newIndex);\r\n\r\n imageListRef.current!.scrollTo({\r\n left: newIndex * 150,\r\n behavior: \"smooth\",\r\n });\r\n };\r\n\r\n const toggleAllPhotos = () => {\r\n setIsImagePopupOpen(!isImagePopupOpen);\r\n };\r\n\r\n return (\r\n <div className=\"col-8 me-2 Pimagelist\">\r\n <div\r\n className=\"col-12 rounded-5 mainImage d-flex position-relative align-items-center\"\r\n style={{\r\n backgroundImage: `url(${prop.pictureUrls[currentImageIndex]?.url})`,\r\n backgroundSize: \"cover\",\r\n backgroundPosition: \"center\",\r\n }}\r\n >\r\n {/* Arrows on the main image */}\r\n <div\r\n className=\"rounded-circle border onImageArrow d-flex position-absolute start-0 ms-2 align-items-center justify-content-center\"\r\n role=\"button\"\r\n onClick={() => handleArrowClickInMainImage(\"left\")}\r\n >\r\n <img src={blcIconArrowLeft} className=\"blackArrow\" alt=\"Left Arrow\" />\r\n </div>\r\n <div\r\n role=\"button\"\r\n className=\"rounded-circle border onImageArrow d-flex position-absolute end-0 me-2 align-items-center justify-content-center\"\r\n onClick={() => handleArrowClickInMainImage(\"right\")}\r\n >\r\n <img\r\n src={blcIconArrowRight}\r\n className=\"blackArrow\"\r\n alt=\"Right Arrow\"\r\n />\r\n </div>\r\n </div>\r\n\r\n {/* Image Thumbnails */}\r\n <div className=\"d-flex flex-row gap-1 col-12 secondList\">\r\n <div className=\"col-lg-6 d-flex flex-row p-1\">\r\n <div className=\"col-12 position-relative d-flex justify-content-center\">\r\n <div\r\n className=\"col-1 h-100 d-flex position-absolute start-0\"\r\n onClick={() => handleArrowClickInMainImage(\"left\")}\r\n role=\"button\"\r\n >\r\n <div className=\"col-lg-12 h-100 d-flex flex-column listImageButton border-0 rounded-3\">\r\n <img\r\n src={iconArrowLeft}\r\n className=\"arroIconColour\"\r\n alt=\"Left Arrow\"\r\n />\r\n </div>\r\n </div>\r\n <div\r\n className=\"col-lg-10 rounded-3 h-100 d-flex flex-row gap-2 overflow-auto ms-1\"\r\n ref={imageListRef}\r\n >\r\n {prop.pictureUrls.length > 0 && (\r\n <div className=\"col-lg-5 h-100 d-flex gap-2 flex-row rounded-3\">\r\n {prop.pictureUrls.map((picture, index) => (\r\n <div\r\n key={index}\r\n className=\"col-lg-12 h-100 d-flex\"\r\n onClick={() => {\r\n setCurrentImageIndex(index);\r\n imageListRef.current!.scrollTo({\r\n left: index * 150,\r\n behavior: \"smooth\",\r\n });\r\n }}\r\n role=\"button\"\r\n >\r\n <img\r\n src={picture.url}\r\n alt={`Image ${index + 1}`}\r\n className=\"col-12 h-100 rounded-3 object-fit-cover\"\r\n />\r\n </div>\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n <div\r\n className=\"col-1 h-100 d-flex position-absolute end-0 top-0\"\r\n onClick={() => handleArrowClickInMainImage(\"right\")}\r\n role=\"button\"\r\n >\r\n <div className=\"col-lg-12 h-100 d-flex flex-column listImageButton border-0 rounded-3 ms-1\">\r\n <img\r\n src={iconArrowRight}\r\n className=\"arroIconColour\"\r\n alt=\"Right Arrow\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {/* Buttons for \"Alle Fotos\", \"Grundriss\", \"Karte\" */}\r\n <div className=\"col-6 d-flex flex-row\">\r\n <div className=\"col-lg-4 p-1\" role=\"button\" onClick={toggleAllPhotos}>\r\n <div className=\"border col-lg-12 h-100 d-flex flex-column listImageButton border-0 rounded-3\">\r\n <img src={iconGallery} alt=\"Gallery Icon\" />\r\n <span className=\"listImgText\">Alle Fotos</span>\r\n </div>\r\n </div>\r\n <div className=\"col-lg-4 p-1\" role=\"button\">\r\n <div className=\"border col-lg-12 h-100 d-flex flex-column listImageButton border-0 rounded-3\">\r\n <img src={iconLayers} alt=\"Layers Icon\" />\r\n <span className=\"listImgText\">Grundriss</span>\r\n </div>\r\n </div>\r\n <div\r\n className=\"col-lg-4 p-1\"\r\n role=\"button\"\r\n onClick={() =>\r\n window.scrollTo({\r\n top: document.documentElement.scrollHeight,\r\n })\r\n }\r\n >\r\n <div className=\"border col-lg-12 h-100 d-flex flex-column listImageButton border-0 rounded-3\">\r\n <img src={iconMap} alt=\"Map Icon\" />\r\n <span className=\"listImgText\">Karte</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {/* Popup for all photos */}\r\n {isImagePopupOpen && <ImageListPopup pictureUrls={prop.pictureUrls} />}\r\n </div>\r\n );\r\n}\r\n","export default \"/static/media/LayersIcon.34c085c352a2c9c8.svg\"","export default \"/static/media/locationIcon.0af399c78e0cdc20.svg\"","export default \"/static/media/default-property.9987f19670be82b6.jpg\"","import React, { useState } from \"react\";\r\n// import { FormattedMessage } from \"react-intl\";\r\nimport layerIcon from \"../../assets/Images/LayersIcon.svg\";\r\nimport heart from \"../../assets/Images/heart.svg\";\r\nimport locationIcon from \"../../assets/images/locationIcon.svg\";\r\nimport \"../PropertyCard/PropertyCard.css\";\r\nimport noImageIcon from \"../../assets/Images/default-property.jpg\";\r\n// import { formatPrice } from \"../../functions/util\";\r\n\r\ninterface PopupProps {\r\n properties: {\r\n city: string;\r\n historicalProtection: boolean;\r\n basement: boolean;\r\n balcony: boolean;\r\n terrace: boolean;\r\n guestBathroom: boolean;\r\n bathrooms: string;\r\n usableArea: string;\r\n id: string;\r\n rooms: string;\r\n askingPrice: string;\r\n pictures: { contentUrl: string }[];\r\n };\r\n onClick: any;\r\n pictureUrl: any[];\r\n baseUrl: string;\r\n}\r\n\r\nexport default function PropertyCard(props: PopupProps) {\r\n const [liked, setLiked] = useState(false);\r\n\r\n const handleLike = () => {\r\n setLiked(!liked);\r\n };\r\n const pictureUrl =\r\n props.properties.pictures && props.properties.pictures.length > 0\r\n ? `${props.baseUrl}${props.properties.pictures[0].contentUrl}`\r\n : noImageIcon;\r\n return (\r\n <div\r\n key={props.properties.id}\r\n className=\"card-body me-4 mb-4 position-relative cardStyle\"\r\n style={{\r\n backgroundImage: `url(${props.pictureUrl})`,\r\n backgroundSize: \"cover\",\r\n backgroundPosition: \"center\",\r\n }}\r\n onClick={props.onClick}\r\n role=\"button\"\r\n >\r\n <div className=\"labelTopClass position-absolute top-0 start-0 col-sm-5 col-lg-8\">\r\n <div className=\"d-flex align-items-center ms-2 mb-1 mt-2 gap-2\">\r\n <label className=\"p-1 firstLabel d-flex flex-row justify-content-center align-items-center\">\r\n <img src={layerIcon} alt=\"Location Icon\" className=\"layersVector\" />\r\n <span className=\"layersText\">{\"Grundriss\"}</span>\r\n </label>\r\n {props.properties.historicalProtection && (\r\n <label className=\"thirdLabel d-flex flex-row justify-content-center align-items-center\">\r\n <span className=\"layersText p-1\">{\"Denkmalschutz\"}</span>\r\n </label>\r\n )}\r\n\r\n {props.properties.basement && (\r\n <label className=\"secondLabel d-flex flex-row justify-content-center align-items-center\">\r\n <span className=\"layersText p-1\">{\"Keller\"}</span>\r\n </label>\r\n )}\r\n {props.properties.balcony && (\r\n <label className=\"secondLabel d-flex flex-row justify-content-center align-items-center\">\r\n <span className=\"layersText p-1\">{\"Balkon\"}</span>\r\n </label>\r\n )}\r\n </div>\r\n <div className=\"d-flex align-items-center ms-2 start-0 gap-2\">\r\n {props.properties.terrace && (\r\n <label className=\"p-1 thirdLabel d-flex flex-row justify-content-center align-items-center \">\r\n <span className=\"layersText\">{\"Terrace\"}</span>\r\n </label>\r\n )}\r\n\r\n {props.properties.guestBathroom && (\r\n <label className=\"fourthLabel d-flex flex-row justify-content-center align-items-center \">\r\n <span className=\"layersText p-1\">{\"Gäste-WC\"}</span>\r\n </label>\r\n )}\r\n </div>\r\n </div>\r\n <div className=\"d-flex align-items-center position-absolute top-0 end-0 p-3\">\r\n {/*<img*/}\r\n {/* src={heart}*/}\r\n {/* alt=\" Heart Icon\"*/}\r\n {/* className={`heartVector ${liked ? \"liked\" : \"\"}`}*/}\r\n {/* onClick={handleLike}*/}\r\n {/*/>*/}\r\n </div>\r\n <div className=\"d-flex align-items-center mb-3 position-absolute bottom-0 start-0 p-2\">\r\n <span className=\"Price col-lg-12 col-md-12 col-sm-12 text-truncate p-1\">\r\n {props.properties?.askingPrice ?? 0} €\r\n </span>\r\n </div>\r\n <div className=\"d-flex align-items-center position-absolute bottom-0 start-0 p-2\">\r\n <img src={locationIcon} alt=\"Location Icon\" className=\"Vector\" />\r\n <span className=\"locationText \">\r\n {props.properties.city || \"N/A p-1\"}\r\n </span>\r\n </div>\r\n <div className=\"d-flex col-lg-6 col-md-6 col-sm-5 me-lg-0 me-md-0 me-sm-3 justify-content-center mb-2 position-absolute bottom-0 end-0\">\r\n <span className=\"detail col-lg-4 col-md-4 col-sm-6 text-truncate border-end \">\r\n {+props.properties.rooms}\r\n <br />\r\n {/* <FormattedMessage id=\"ROOMS\" /> */}\r\n <span>Zimmer</span>\r\n </span>\r\n <span className=\"detail col-lg-3 col-md-3 col-sm-4 text-truncate \">\r\n {+props.properties.bathrooms}\r\n <br />\r\n {/* <FormattedMessage\r\n id=\"BATHROOM\"\r\n values={{ itemCount: +props.property.bathrooms }}\r\n /> */}\r\n {+props.properties.bathrooms}\r\n <br></br>\r\n <span>Bäd</span>\r\n </span>\r\n <span className=\"detail col-lg-5 col-md-5 col-sm-7 text-truncate border-start me-3\">\r\n {props.properties.usableArea} m²\r\n <br />\r\n {/* <FormattedMessage id=\"LIVING_SPACE\" /> */}\r\n <span>Wohnfläche</span>\r\n </span>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"names":["useState","useRef","locationIcon"],"mappings":"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","x_google_ignoreList":[2]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/components/Button/Button.tsx","../src/assets/images/icon_close_2.png","../node_modules/style-inject/dist/style-inject.es.js","../src/components/Popup/Popup.tsx","../src/assets/images/icon_share_1.svg","../src/assets/images/locationIconBlack.svg","../src/assets/images/envelope-fill.svg","../src/assets/images/facebook.svg","../src/assets/images/linkedin.svg","../src/assets/images/twitter-x.svg","../src/assets/images/whatsapp.svg","../src/components/SharePopup/SharePopup.tsx","../src/components/PropertyDetailsHeader/PropertyDetailsHeader.tsx","../src/assets/images/Icon_rightArrow.svg","../src/assets/images/blackarrow-Right.svg","../src/assets/images/blckarrow-Left.svg","../src/assets/images/chevron-left.svg","../src/assets/images/icon_gallery.svg","../src/assets/images/icon_map.svg","../src/assets/images/layer_icon.svg","../src/assets/images/close.png","../src/components/ImageListPopup/ImageListPopup.tsx","../src/components/FloorPlanPopup/FloorPlanPopup.tsx","../src/components/PropertyImageList/PropertyImageList.tsx","../src/assets/images/LayersIcon.svg","../src/assets/images/locationIcon.svg","../src/assets/images/default-property.jpg","../src/components/PropertyCard/PropertyCard.tsx","../src/components/ToastWrapper/ToastWrapper.tsx"],"sourcesContent":["import React from 'react';\r\n\r\ninterface ButtonProps {\r\n label: string;\r\n}\r\n\r\nconst Button: React.FC<ButtonProps> = ({ label }) => {\r\n return <button>{label}</button>;\r\n};\r\n\r\nexport default Button;\r\n","export default \"/static/media/icon_close_2.e41bb9a4db48e048.png\"","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import React from \"react\";\r\nimport closeIcon from \"../../assets/images/icon_close_2.png\";\r\nimport \"./Popup.css\";\r\nimport \"../../styles/common.css\";\r\n\r\ninterface PopupProps {\r\n children: React.ReactNode;\r\n onCloseClick: () => void;\r\n}\r\n\r\nconst Popup: React.FC<PopupProps> = ({ onCloseClick, children }) => {\r\n return (\r\n <div className=\"popup-overlay\">\r\n <div className=\"shareSection col-12 d-flex position-relative flex-column mx-auto justify-content-center col-5 col-lg-6 d-flex gap-4\">\r\n <div className=\"end-0 top-0 position-absolute \">\r\n <img\r\n src={closeIcon}\r\n alt=\"close\"\r\n className=\"closeIcon me-2\"\r\n onClick={onCloseClick}\r\n />\r\n </div>\r\n {children}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Popup;\r\n","export default \"/static/media/icon_share_1.b9ec05630dc1087e.svg\"","export default \"/static/media/locationIconBlack.eb8e9e9226b43573.svg\"","export default \"/static/media/envelope-fill.6669c9d64183941c.svg\"","export default \"/static/media/facebook.ce73eacbfffe8a27.svg\"","export default \"/static/media/linkedin.7539333145b03678.svg\"","export default \"/static/media/twitter-x.48a4ac3f560f0a62.svg\"","export default \"/static/media/whatsapp.28e6b0b24adc9289.svg\"","import React, { useRef, useState } from \"react\";\r\nimport email from \"../../assets/images/envelope-fill.svg\";\r\nimport facebook from \"../../assets/images/facebook.svg\";\r\nimport x from \"../../assets/images/icon_close_2.png\";\r\nimport linkedln from \"../../assets/images/linkedin.svg\";\r\nimport Xtwitter from \"../../assets/images/twitter-x.svg\";\r\nimport whatsapp from \"../../assets/images/whatsapp.svg\";\r\nimport \"./SharePopup.css\";\r\nimport { toast } from \"react-toastify\";\r\nimport \"../../styles/common.css\";\r\n\r\nexport default function SharePopup() {\r\n const [showPopUp, setShowPopUp] = useState(true);\r\n\r\n const handleClose = () => {\r\n setShowPopUp(false);\r\n };\r\n const urlInputRef = useRef<HTMLInputElement | null>(null);\r\n\r\n const copyToClipboard = () => {\r\n urlInputRef.current!.select();\r\n document.execCommand(\"copy\");\r\n toast.success(\"URL copied to clipboard!\");\r\n };\r\n\r\n return (\r\n <div>\r\n {showPopUp && (\r\n <div className=\"popup-overlay\">\r\n <div className=\"shareSection col-12 d-flex position-relative flex-column mx-auto justify-content-center col-5 col-lg-6 d-flex gap-4\">\r\n <div className=\"end-0 top-0 position-absolute \">\r\n <img\r\n src={x}\r\n alt=\"close\"\r\n className=\"closeIcon me-2\"\r\n onClick={handleClose}\r\n />\r\n </div>\r\n <div className=\"popUpHeader col-lg-12 d-flex justify-content-center mb-2\">\r\n Jetzt teilen und weitersagen!\r\n </div>\r\n <div className=\"h-25 col-lg-12 socialMediaIconsSection d-flex flex-row align-items-center justify-content-center mx-auto\">\r\n <a\r\n href=\"https://twitter.com/intent/tweet?url=https://www.nestiq.de&text=Nestiq\"\r\n className=\"text-decoration-none\"\r\n target=\"blank\"\r\n >\r\n <div className=\" flex-column d-flex align-items-center\">\r\n <img\r\n src={Xtwitter}\r\n alt=\"twitter\"\r\n className=\"socialMediaIcons\"\r\n />\r\n <span className=\"socialMediaIconText\">Xtwitter</span>\r\n </div>\r\n </a>\r\n\r\n <a\r\n href=\"https://www.facebook.com/sharer/sharer.php?u=https://www.nestiq.de\"\r\n className=\"text-decoration-none\"\r\n target=\"blank\"\r\n >\r\n <div className=\" flex-column d-flex align-items-center\">\r\n <img\r\n src={facebook}\r\n alt=\"facebook\"\r\n className=\"socialMediaIcons \"\r\n />\r\n <span className=\"socialMediaIconText\">Facebook</span>\r\n </div>\r\n </a>\r\n\r\n <a\r\n href=\"https://api.whatsapp.com/send?text=https://www.nestiq.de\"\r\n target=\"blank\"\r\n className=\"text-decoration-none\"\r\n >\r\n <div className=\" flex-column d-flex align-items-center\">\r\n <img\r\n src={whatsapp}\r\n alt=\"whatsapp\"\r\n className=\" socialMediaIcons\"\r\n />\r\n <span className=\"socialMediaIconText\">WhatsApp</span>\r\n </div>\r\n </a>\r\n\r\n <a\r\n href=\"https://www.linkedin.com/shareArticle?mini=true&url=https://www.nestiq.de\"\r\n target=\"blank\"\r\n className=\"text-decoration-none\"\r\n >\r\n <div className=\" flex-column d-flex align-items-center\">\r\n <img\r\n src={linkedln}\r\n alt=\"linkedin\"\r\n className=\" socialMediaIcons\"\r\n />\r\n <span className=\"socialMediaIconText\">LinkedIn</span>\r\n </div>\r\n </a>\r\n\r\n <a\r\n href=\"https://www.nestiq.de\"\r\n target=\"blank\"\r\n className=\"text-decoration-none\"\r\n >\r\n <div className=\" flex-column d-flex align-items-center\">\r\n <img src={email} alt=\"email\" className=\" socialMediaIcons\" />\r\n <span className=\"socialMediaIconText\">E-mail</span>\r\n </div>\r\n </a>\r\n </div>\r\n <div className=\"col-10 mx-auto\">\r\n <div className=\" row align-items-center position-relative\">\r\n <input\r\n ref={urlInputRef}\r\n type=\"text\"\r\n className=\"popup_search-input rounded-4 border border-0 \"\r\n placeholder=\"Enter link here\"\r\n value={window.location.href}\r\n readOnly\r\n />\r\n <button\r\n onClick={copyToClipboard}\r\n className=\"popupcustom-button border border-0 position-absolute me-2 col-lg-3 col-md-3 col-sm-3 rounded-4 fs-6\"\r\n type=\"button\"\r\n id=\"button\"\r\n >\r\n <strong>Kopieren</strong>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\n// import { FormattedMessage } from \"react-intl\";\r\nimport ShareIcon from \"../../assets/images/icon_share_1.svg\";\r\nimport locationIcon from \"../../assets/images/locationIconBlack.svg\";\r\nimport \"./PropertyDetailsHeader.css\";\r\nimport SharePopup from \"../SharePopup/SharePopup\";\r\n\r\nexport interface PopupProps {\r\n property: {\r\n city: string;\r\n constructedArea: string;\r\n rooms: string;\r\n propertyArea: string;\r\n askingPrice: string;\r\n };\r\n title: string;\r\n}\r\n\r\nexport default function PropertyDetailsHeader(props: PopupProps) {\r\n const [showPopUp, setShowPopUp] = useState(false);\r\n\r\n const handlePopUp = () => {\r\n setShowPopUp(!showPopUp);\r\n };\r\n\r\n return (\r\n <div className=\"Pheader compact d-flex col-12 col-lg-12 position-relative mt-5 \">\r\n <div className=\"header_Text d-flex col-lg-7 col-md-9 mt-4 ms-4 \">\r\n <strong>{props.title ?? \"-\"}</strong>\r\n </div>\r\n <div className=\"header_Text text-truncate col-lg-6 col-md-7 d-flex flex-row position-absolute ms-4\">\r\n <img src={locationIcon} className=\"vector me-2\" alt=\"location Icon\" />\r\n\r\n <div className=\"propText text-truncate col-lg-6 col-md-6 d-flex align-items-center\">\r\n {props.property.city}\r\n </div>\r\n </div>\r\n <div className=\"d-flex col-lg-5 col-md-6 col-sm-5 justify-content-end position-absolute end-0 mt-4\">\r\n {/* <img src={Hearticon} alt=\"Location Icon\" className=\"v_share me-3\" /> */}\r\n <img\r\n src={ShareIcon}\r\n alt=\"share icon\"\r\n className=\"v_share me-3\"\r\n onClick={handlePopUp}\r\n />\r\n </div>\r\n <div className=\"fetch_section d-flex align-items-center flex-row col-lg-5 col-md-6 col-sm-5 justify-content-end position-absolute end-0\">\r\n {props && (\r\n <div className=\" propText col-lg-3 col-md-3 h-100 d-flex align-items-center justify-content-center \">\r\n {props.property.askingPrice} <br />\r\n Kaufpreis\r\n </div>\r\n )}\r\n {props && (\r\n <div className=\"propText col-lg-3 col-md-3 d-flex h-100 align-items-center justify-content-center\">\r\n {props.property.constructedArea} m² <br />\r\n Wohnfläche\r\n {/* <FormattedMessage id=\"LIVING_SPACE\" /> */}\r\n </div>\r\n )}\r\n {props && (\r\n <div className=\"propText col-lg-3 col-md-3 d-flex h-100 align-items-center justify-content-center\">\r\n {props.property.rooms} <br />\r\n Zimmer\r\n {/* <FormattedMessage id=\"ROOMS\" /> */}\r\n </div>\r\n )}\r\n {props && (\r\n <div className=\"propText col-lg-3 col-md-3 d-flex h-100 align-items-center justify-content-center\">\r\n {props.property.propertyArea} m²\r\n <br />\r\n Grundstück\r\n {/* <FormattedMessage id=\"Grundstück\" /> */}\r\n </div>\r\n )}\r\n </div>\r\n {showPopUp && <SharePopup />}\r\n </div>\r\n );\r\n}\r\n","export default \"/static/media/Icon_rightArrow.bced4a705c07148d.svg\"","export default \"/static/media/blackarrow-Right.e585ae62dd55abae.svg\"","export default \"/static/media/blckarrow-Left.e2134741aa368d30.svg\"","export default \"/static/media/chevron-left.04f0a7f16b745c1a.svg\"","export default \"/static/media/icon_gallery.269b721daf2ca907.svg\"","export default \"/static/media/icon_map.2318ec664c3e615e.svg\"","export default \"/static/media/layer_icon.9b56c187199c44b5.svg\"","export default \"/static/media/close.b5ce9141e80c688b.png\"","import \"./ImageListPopup.css\";\r\nimport React, { useRef, useState } from \"react\";\r\nimport blcIconArrowRight from \"../../assets/images/blackarrow-Right.svg\";\r\nimport blcIconArrowLeft from \"../../assets/images/blckarrow-Left.svg\";\r\nimport iconClose from \"../../assets/images/close.png\";\r\nimport \"../../styles/common.css\";\r\n\r\ninterface PopupProps {\r\n pictureUrls: { title: string; url: string }[];\r\n}\r\n\r\nexport default function ImageListPopup(props: PopupProps) {\r\n const [showPopUp, setShowPopUp] = useState(true);\r\n const [currentImageIndex, setCurrentImageIndex] = useState(0);\r\n const imageListRef = useRef<HTMLDivElement | null>(null);\r\n\r\n const handleArrowClickInMainImage = (direction: any) => {\r\n if (props.pictureUrls.length === 0) return;\r\n\r\n let newIndex = currentImageIndex;\r\n if (direction === \"left\") {\r\n newIndex =\r\n (currentImageIndex - 1 + props.pictureUrls.length) %\r\n props.pictureUrls.length;\r\n } else if (direction === \"right\") {\r\n newIndex = (currentImageIndex + 1) % props.pictureUrls.length;\r\n }\r\n\r\n setCurrentImageIndex(newIndex);\r\n\r\n imageListRef.current!.scrollTo({\r\n left: newIndex * 150,\r\n behavior: \"smooth\",\r\n });\r\n };\r\n\r\n const handleClose = () => {\r\n setShowPopUp(false);\r\n };\r\n\r\n return (\r\n <div>\r\n {showPopUp && (\r\n <div className=\"popup-overlay\">\r\n <div className=\" d-flex w-50 flex-column col-6 \">\r\n <div className=\"d-flex align-self-end me-5 mt-5\">\r\n <img\r\n src={iconClose}\r\n alt=\"close\"\r\n className=\"closeIcon mt-5\"\r\n onClick={handleClose}\r\n />\r\n </div>\r\n <span className=\"text-white align-self-center\">\r\n {props.pictureUrls[currentImageIndex].title}\r\n </span>\r\n <div className=\"d-flex justify-content-center\">\r\n <div className=\"p-2 bd-highlight align-self-center align-items-center me-5\">\r\n <div\r\n className=\"rounded-circle border onImageArrow start-0 d-flex \"\r\n role=\"button\"\r\n onClick={() => handleArrowClickInMainImage(\"left\")}\r\n >\r\n <img\r\n src={blcIconArrowLeft}\r\n className=\"blackArrow align-self-center\"\r\n alt=\"Left Arrow\"\r\n />\r\n </div>\r\n </div>\r\n <div className=\"p-2 bd-highlight\">\r\n <div\r\n className=\" rounded-5 mainImage \"\r\n style={{\r\n backgroundImage: `url(${props.pictureUrls[currentImageIndex].url})`,\r\n height: \"350px\",\r\n width: \"600px\",\r\n backgroundSize: \"cover\",\r\n backgroundPosition: \"center\",\r\n }}\r\n ></div>\r\n </div>\r\n <div className=\"p-2 bd-highlight align-self-center ms-5\">\r\n {\" \"}\r\n <div\r\n role=\"button\"\r\n className=\"rounded-circle border onImageArrow d-flex justify-content-center\"\r\n onClick={() => handleArrowClickInMainImage(\"right\")}\r\n >\r\n <img\r\n src={blcIconArrowRight}\r\n className=\"blackArrow align-self-center\"\r\n alt=\"Right Arrow\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"d-flex flex-row\">\r\n {/* Arrows on the main image */}\r\n </div>\r\n <div className=\"d-flex flex-row gap-4 w-100 secondList \">\r\n <div className=\"col-lg-12 d-flex flex-row p-1 align-self-center mt-5\">\r\n <div className=\"col-12 position-relative d-flex justify-content-center\">\r\n <div\r\n className=\"col-lg-10 rounded-3 h-100 w-100 d-flex flex-row gap-2 overflow-auto \"\r\n ref={imageListRef}\r\n >\r\n {props.pictureUrls.length > 0 && (\r\n <div className=\"col-lg-5 h-100 w-25 d-flex gap-4 flex-row rounded-3\">\r\n {props.pictureUrls.map((picture, index) => (\r\n <div\r\n key={index}\r\n className=\"col-lg-12 h-100 d-flex\"\r\n onClick={() => {\r\n setCurrentImageIndex(index);\r\n imageListRef.current!.scrollTo({\r\n left: index * 150,\r\n behavior: \"smooth\",\r\n });\r\n }}\r\n role=\"button\"\r\n >\r\n <img\r\n src={picture.url}\r\n alt={`Image ${index + 1}`}\r\n className=\"col-12 h-100 rounded-3 object-fit-cover\"\r\n />\r\n </div>\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport iconClose from \"../../assets/images/close.png\";\r\n\r\ninterface PopupProps {\r\n contentUrl: string;\r\n onCloseClick: () => void;\r\n}\r\n\r\nconst FloorPlanPopup: React.FC<PopupProps> = ({ contentUrl, onCloseClick }) => {\r\n const [isContentImage, setIsContentImage] = useState(false);\r\n\r\n useEffect(() => {\r\n if (contentUrl) {\r\n const fileFormat = contentUrl.split(\".\").pop();\r\n if (\r\n fileFormat === \"png\" ||\r\n fileFormat === \"jpg\" ||\r\n fileFormat === \"jpeg\" ||\r\n fileFormat === \"svg\"\r\n ) {\r\n setIsContentImage(true);\r\n }\r\n }\r\n }, [contentUrl]);\r\n\r\n const downloadButtonClickHandler = (): void => {\r\n // Create a temporary anchor element\r\n const link = document.createElement(\"a\");\r\n link.href = contentUrl;\r\n link.setAttribute(\"download\", \"\"); // This attribute hints the browser to download the file\r\n\r\n // Append the anchor to the body and click it to trigger the download\r\n document.body.appendChild(link);\r\n link.click();\r\n\r\n // Clean up: remove the anchor element\r\n document.body.removeChild(link);\r\n };\r\n return (\r\n <div className=\"popup-overlay\">\r\n <div className=\" d-flex w-50 flex-column col-6 \">\r\n <div className=\"d-flex align-self-end me-5 mt-5\">\r\n <img\r\n src={iconClose}\r\n alt=\"close\"\r\n className=\"closeIcon mt-5\"\r\n onClick={onCloseClick}\r\n />\r\n </div>\r\n <div className=\"d-flex justify-content-center\">\r\n <div className=\"p-2 bd-highlight\">\r\n {isContentImage && (\r\n <div\r\n className=\"rounded-5 mainImage\"\r\n style={{\r\n backgroundImage: `url(${contentUrl})`,\r\n height: \"350px\",\r\n width: \"600px\",\r\n backgroundSize: \"cover\",\r\n backgroundPosition: \"center\",\r\n }}\r\n ></div>\r\n )}\r\n {!isContentImage && (\r\n <div className=\"text-white text-center\">\r\n No Preview Available\r\n <button\r\n className=\"btn btn-info\"\r\n onClick={downloadButtonClickHandler}\r\n >\r\n {\" \"}\r\n Download{\" \"}\r\n </button>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default FloorPlanPopup;\r\n","import React, { useRef, useState } from \"react\";\r\nimport iconArrowRight from \"../../assets/images/Icon_rightArrow.svg\";\r\nimport blcIconArrowRight from \"../../assets/images/blackarrow-Right.svg\";\r\nimport blcIconArrowLeft from \"../../assets/images/blckarrow-Left.svg\";\r\nimport iconArrowLeft from \"../../assets/images/chevron-left.svg\";\r\nimport iconGallery from \"../../assets/images/icon_gallery.svg\";\r\nimport iconMap from \"../../assets/images/icon_map.svg\";\r\nimport iconLayers from \"../../assets/images/layer_icon.svg\";\r\nimport \"./PropertyImageList.css\";\r\nimport ImageListPopup from \"../ImageListPopup/ImageListPopup\";\r\nimport PopupProps from \"../ImageListPopup/ImageListPopup\";\r\nimport FloorPlanPopup from \"../FloorPlanPopup/FloorPlanPopup\";\r\n\r\ninterface PopupProps {\r\n pictureUrls: { title: string; url: string }[];\r\n floorPlanUrl: string;\r\n}\r\nexport default function PropertyImageList(prop: PopupProps) {\r\n const [currentImageIndex, setCurrentImageIndex] = useState(0);\r\n const [isImagePopupOpen, setIsImagePopupOpen] = useState(false);\r\n const [isFloorPlanPopupOpen, setIsFloorPlanPopupOpen] = useState(false);\r\n const imageListRef = useRef<HTMLDivElement | null>(null);\r\n\r\n const handleArrowClickInMainImage = (direction: any) => {\r\n if (prop.pictureUrls.length === 0) return;\r\n\r\n let newIndex = currentImageIndex;\r\n if (direction === \"left\") {\r\n newIndex =\r\n (currentImageIndex - 1 + prop.pictureUrls.length) %\r\n prop.pictureUrls.length;\r\n } else if (direction === \"right\") {\r\n newIndex = (currentImageIndex + 1) % prop.pictureUrls.length;\r\n }\r\n\r\n setCurrentImageIndex(newIndex);\r\n\r\n imageListRef.current!.scrollTo({\r\n left: newIndex * 150,\r\n behavior: \"smooth\",\r\n });\r\n };\r\n\r\n const toggleAllPhotos = () => {\r\n setIsImagePopupOpen(!isImagePopupOpen);\r\n };\r\n\r\n const floorPlanClickHandler = () => {\r\n if (prop.floorPlanUrl) {\r\n setIsFloorPlanPopupOpen(true);\r\n }\r\n };\r\n\r\n const floorPlanPopupCloseHandler = () => {\r\n setIsFloorPlanPopupOpen(false);\r\n };\r\n\r\n return (\r\n <div className=\"col-8 me-2 Pimagelist\">\r\n <div\r\n className=\"col-12 rounded-5 mainImage d-flex position-relative align-items-center\"\r\n style={{\r\n backgroundImage: `url(${prop.pictureUrls[currentImageIndex]?.url})`,\r\n backgroundSize: \"cover\",\r\n backgroundPosition: \"center\",\r\n }}\r\n >\r\n {/* Arrows on the main image */}\r\n <div\r\n className=\"rounded-circle border onImageArrow d-flex position-absolute start-0 ms-2 align-items-center justify-content-center\"\r\n role=\"button\"\r\n onClick={() => handleArrowClickInMainImage(\"left\")}\r\n >\r\n <img src={blcIconArrowLeft} className=\"blackArrow\" alt=\"Left Arrow\" />\r\n </div>\r\n <div\r\n role=\"button\"\r\n className=\"rounded-circle border onImageArrow d-flex position-absolute end-0 me-2 align-items-center justify-content-center\"\r\n onClick={() => handleArrowClickInMainImage(\"right\")}\r\n >\r\n <img\r\n src={blcIconArrowRight}\r\n className=\"blackArrow\"\r\n alt=\"Right Arrow\"\r\n />\r\n </div>\r\n </div>\r\n\r\n {/* Image Thumbnails */}\r\n <div className=\"d-flex flex-row gap-1 col-12 secondList\">\r\n <div className=\"col-lg-6 d-flex flex-row p-1\">\r\n <div className=\"col-12 position-relative d-flex justify-content-center\">\r\n <div\r\n className=\"col-1 h-100 d-flex position-absolute start-0\"\r\n onClick={() => handleArrowClickInMainImage(\"left\")}\r\n role=\"button\"\r\n >\r\n <div className=\"col-lg-12 h-100 d-flex flex-column listImageButton border-0 rounded-3\">\r\n <img\r\n src={iconArrowLeft}\r\n className=\"arroIconColour\"\r\n alt=\"Left Arrow\"\r\n />\r\n </div>\r\n </div>\r\n <div\r\n className=\"col-lg-10 rounded-3 h-100 d-flex flex-row gap-2 overflow-auto ms-1\"\r\n ref={imageListRef}\r\n >\r\n {prop.pictureUrls.length > 0 && (\r\n <div className=\"col-lg-5 h-100 d-flex gap-2 flex-row rounded-3\">\r\n {prop.pictureUrls.map((picture, index) => (\r\n <div\r\n key={index}\r\n className=\"col-lg-12 h-100 d-flex\"\r\n onClick={() => {\r\n setCurrentImageIndex(index);\r\n imageListRef.current!.scrollTo({\r\n left: index * 150,\r\n behavior: \"smooth\",\r\n });\r\n }}\r\n role=\"button\"\r\n >\r\n <img\r\n src={picture.url}\r\n alt={`Image ${index + 1}`}\r\n className=\"col-12 h-100 rounded-3 object-fit-cover\"\r\n />\r\n </div>\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n <div\r\n className=\"col-1 h-100 d-flex position-absolute end-0 top-0\"\r\n onClick={() => handleArrowClickInMainImage(\"right\")}\r\n role=\"button\"\r\n >\r\n <div className=\"col-lg-12 h-100 d-flex flex-column listImageButton border-0 rounded-3 ms-1\">\r\n <img\r\n src={iconArrowRight}\r\n className=\"arroIconColour\"\r\n alt=\"Right Arrow\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {/* Buttons for \"Alle Fotos\", \"Grundriss\", \"Karte\" */}\r\n <div className=\"col-6 d-flex flex-row\">\r\n <div className=\"col-lg-4 p-1\" role=\"button\" onClick={toggleAllPhotos}>\r\n <div className=\"border col-lg-12 h-100 d-flex flex-column listImageButton border-0 rounded-3\">\r\n <img src={iconGallery} alt=\"Gallery Icon\" />\r\n <span className=\"listImgText\">Alle Fotos</span>\r\n </div>\r\n </div>\r\n <div\r\n className=\"col-lg-4 p-1\"\r\n role=\"button\"\r\n onClick={floorPlanClickHandler}\r\n >\r\n <div className=\"border col-lg-12 h-100 d-flex flex-column listImageButton border-0 rounded-3\">\r\n <img src={iconLayers} alt=\"Layers Icon\" />\r\n <span className=\"listImgText\">Grundriss</span>\r\n </div>\r\n </div>\r\n <div\r\n className=\"col-lg-4 p-1\"\r\n role=\"button\"\r\n onClick={() =>\r\n window.scrollTo({\r\n top: document.documentElement.scrollHeight,\r\n })\r\n }\r\n >\r\n <div className=\"border col-lg-12 h-100 d-flex flex-column listImageButton border-0 rounded-3\">\r\n <img src={iconMap} alt=\"Map Icon\" />\r\n <span className=\"listImgText\">Karte</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {/* Popup for all photos */}\r\n {isImagePopupOpen && <ImageListPopup pictureUrls={prop.pictureUrls} />}\r\n\r\n {/* Popup for floor plan */}\r\n {isFloorPlanPopupOpen && (\r\n <FloorPlanPopup\r\n contentUrl={prop.floorPlanUrl}\r\n onCloseClick={floorPlanPopupCloseHandler}\r\n />\r\n )}\r\n </div>\r\n );\r\n}\r\n","export default \"/static/media/LayersIcon.34c085c352a2c9c8.svg\"","export default \"/static/media/locationIcon.0af399c78e0cdc20.svg\"","export default \"/static/media/default-property.9987f19670be82b6.jpg\"","import React, { useState } from \"react\";\r\n// import { FormattedMessage } from \"react-intl\";\r\nimport layerIcon from \"../../assets/images/LayersIcon.svg\";\r\nimport heart from \"../../assets/images/heart.svg\";\r\nimport locationIcon from \"../../assets/images/locationIcon.svg\";\r\nimport \"../PropertyCard/PropertyCard.css\";\r\nimport noImageIcon from \"../../assets/images/default-property.jpg\";\r\n// import { formatPrice } from \"../../functions/util\";\r\n\r\ninterface PopupProps {\r\n property: {\r\n city: string;\r\n historicalProtection: boolean;\r\n basement: boolean;\r\n balcony: boolean;\r\n terrace: boolean;\r\n guestBathroom: boolean;\r\n bathrooms: string;\r\n usableArea: string;\r\n id: string;\r\n rooms: string;\r\n askingPrice: string;\r\n pictures: { contentUrl: string }[];\r\n };\r\n onClick: any;\r\n baseUrl: string;\r\n}\r\n\r\nexport default function PropertyCard(props: PopupProps) {\r\n const [liked, setLiked] = useState(false);\r\n\r\n const handleLike = () => {\r\n setLiked(!liked);\r\n };\r\n const pictureUrl =\r\n props.property.pictures && props.property.pictures.length > 0\r\n ? `${props.baseUrl}${props.property.pictures[0].contentUrl}`\r\n : noImageIcon;\r\n return (\r\n <div\r\n key={props.property.id}\r\n className=\"card-body me-4 mb-4 position-relative cardStyle\"\r\n style={{\r\n backgroundImage: `url(${pictureUrl})`,\r\n backgroundSize: \"cover\",\r\n backgroundPosition: \"center\",\r\n }}\r\n onClick={props.onClick}\r\n role=\"button\"\r\n >\r\n <div className=\"labelTopClass position-absolute top-0 start-0 col-sm-5 col-lg-8\">\r\n <div className=\"d-flex align-items-center ms-2 mb-1 mt-2 gap-2\">\r\n <label className=\"p-1 firstLabel d-flex flex-row justify-content-center align-items-center\">\r\n <img src={layerIcon} alt=\"Location Icon\" className=\"layersVector\" />\r\n <span className=\"layersText\">{\"Grundriss\"}</span>\r\n </label>\r\n {props.property.historicalProtection && (\r\n <label className=\"thirdLabels d-flex flex-row justify-content-center align-items-center\">\r\n <span className=\"layersText p-1\">{\"Denkmalschutz\"}</span>\r\n </label>\r\n )}\r\n\r\n {props.property.basement && (\r\n <label className=\"secondLabel d-flex flex-row justify-content-center align-items-center\">\r\n <span className=\"layersText p-1\">{\"Keller\"}</span>\r\n </label>\r\n )}\r\n </div>\r\n <div className=\"d-flex align-items-center ms-2 start-0 gap-2\">\r\n {props.property.terrace && (\r\n <label className=\"p-1 thirdLabels d-flex flex-row justify-content-center align-items-center \">\r\n <span className=\"layersText\">{\"Terrace\"}</span>\r\n </label>\r\n )}\r\n {props.property.balcony && (\r\n <label className=\"secondLabel d-flex flex-row justify-content-center align-items-center\">\r\n <span className=\"layersText p-1\">{\"Balkon\"}</span>\r\n </label>\r\n )}\r\n\r\n {props.property.guestBathroom && (\r\n <label className=\"col-1 fourthLabels d-flex flex-row justify-content-center align-items-center \">\r\n <span className=\"layersText p-1\">{\"Gäste-WC\"}</span>\r\n </label>\r\n )}\r\n </div>\r\n </div>\r\n <div className=\"d-flex align-items-center position-absolute top-0 end-0 p-3\">\r\n {/*<img*/}\r\n {/* src={heart}*/}\r\n {/* alt=\" Heart Icon\"*/}\r\n {/* className={`heartVector ${liked ? \"liked\" : \"\"}`}*/}\r\n {/* onClick={handleLike}*/}\r\n {/*/>*/}\r\n </div>\r\n <div className=\"d-flex align-items-center mb-3 position-absolute bottom-0 start-0 p-2\">\r\n <span className=\"Price col-lg-12 col-md-12 col-sm-12 text-truncate p-1\">\r\n {props.property?.askingPrice ?? 0} €\r\n </span>\r\n </div>\r\n <div className=\"d-flex w-50 align-items-center position-absolute bottom-0 start-0 p-2\">\r\n <img src={locationIcon} alt=\"Location Icon\" className=\"Vector\" />\r\n <span className=\"locationText text-truncate\">\r\n {props.property.city || \"N/A\"}\r\n </span>\r\n </div>\r\n <div className=\"d-flex col-lg-6 col-md-6 col-sm-5 me-lg-0 me-md-0 me-sm-3 justify-content-center mb-2 position-absolute bottom-0 end-0\">\r\n <span className=\"detail col-lg-4 col-md-4 col-sm-6 text-truncate border-end \">\r\n {+props.property.rooms}\r\n <br />\r\n {/* <FormattedMessage id=\"ROOMS\" /> */}\r\n <span>Zimmer</span>\r\n </span>\r\n <span className=\"detail col-lg-3 col-md-3 col-sm-4 text-truncate \">\r\n {+props.property.bathrooms}\r\n <br />\r\n {/* <FormattedMessage\r\n id=\"BATHROOM\"\r\n values={{ itemCount: +props.property.bathrooms }}\r\n /> */}\r\n {/* {+props.property.bathrooms} */}\r\n\r\n <span>Bäd</span>\r\n </span>\r\n <span className=\"detail col-lg-5 col-md-5 col-sm-7 text-truncate border-start me-3\">\r\n {props.property.usableArea} m²\r\n <br />\r\n {/* <FormattedMessage id=\"LIVING_SPACE\" /> */}\r\n <span>Wohnfläche</span>\r\n </span>\r\n </div>\r\n </div>\r\n );\r\n}\r\n","import React from \"react\";\r\nimport { ToastContainer, toast } from \"react-toastify\";\r\n\r\n// Utility function to show a toast\r\nexport const showToast = (\r\n message: string,\r\n type: \"info\" | \"success\" | \"warning\" | \"error\" = \"info\",\r\n) => {\r\n toast(message, { type });\r\n};\r\n\r\nconst ToastWrapper: React.FC = () => (\r\n <ToastContainer\r\n position=\"top-right\"\r\n autoClose={5000}\r\n hideProgressBar={false}\r\n closeOnClick\r\n rtl={false}\r\n pauseOnFocusLoss\r\n draggable\r\n pauseOnHover\r\n />\r\n);\r\n\r\nexport default ToastWrapper;\r\n"],"names":["closeIcon","useState","useRef","toast","locationIcon","useEffect","ToastContainer"],"mappings":"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","x_google_ignoreList":[2]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nestiq-component-library",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.51",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -28,5 +28,8 @@
|
|
|
28
28
|
"peerDependencies": {
|
|
29
29
|
"react": "18.2.0",
|
|
30
30
|
"react-dom": "18.2.0"
|
|
31
|
+
},
|
|
32
|
+
"dependencies": {
|
|
33
|
+
"react-toastify": "^10.0.6"
|
|
31
34
|
}
|
|
32
35
|
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import React, { useEffect, useState } from "react";
|
|
2
|
+
import iconClose from "../../assets/images/close.png";
|
|
3
|
+
|
|
4
|
+
interface PopupProps {
|
|
5
|
+
contentUrl: string;
|
|
6
|
+
onCloseClick: () => void;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const FloorPlanPopup: React.FC<PopupProps> = ({ contentUrl, onCloseClick }) => {
|
|
10
|
+
const [isContentImage, setIsContentImage] = useState(false);
|
|
11
|
+
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
if (contentUrl) {
|
|
14
|
+
const fileFormat = contentUrl.split(".").pop();
|
|
15
|
+
if (
|
|
16
|
+
fileFormat === "png" ||
|
|
17
|
+
fileFormat === "jpg" ||
|
|
18
|
+
fileFormat === "jpeg" ||
|
|
19
|
+
fileFormat === "svg"
|
|
20
|
+
) {
|
|
21
|
+
setIsContentImage(true);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}, [contentUrl]);
|
|
25
|
+
|
|
26
|
+
const downloadButtonClickHandler = (): void => {
|
|
27
|
+
// Create a temporary anchor element
|
|
28
|
+
const link = document.createElement("a");
|
|
29
|
+
link.href = contentUrl;
|
|
30
|
+
link.setAttribute("download", ""); // This attribute hints the browser to download the file
|
|
31
|
+
|
|
32
|
+
// Append the anchor to the body and click it to trigger the download
|
|
33
|
+
document.body.appendChild(link);
|
|
34
|
+
link.click();
|
|
35
|
+
|
|
36
|
+
// Clean up: remove the anchor element
|
|
37
|
+
document.body.removeChild(link);
|
|
38
|
+
};
|
|
39
|
+
return (
|
|
40
|
+
<div className="popup-overlay">
|
|
41
|
+
<div className=" d-flex w-50 flex-column col-6 ">
|
|
42
|
+
<div className="d-flex align-self-end me-5 mt-5">
|
|
43
|
+
<img
|
|
44
|
+
src={iconClose}
|
|
45
|
+
alt="close"
|
|
46
|
+
className="closeIcon mt-5"
|
|
47
|
+
onClick={onCloseClick}
|
|
48
|
+
/>
|
|
49
|
+
</div>
|
|
50
|
+
<div className="d-flex justify-content-center">
|
|
51
|
+
<div className="p-2 bd-highlight">
|
|
52
|
+
{isContentImage && (
|
|
53
|
+
<div
|
|
54
|
+
className="rounded-5 mainImage"
|
|
55
|
+
style={{
|
|
56
|
+
backgroundImage: `url(${contentUrl})`,
|
|
57
|
+
height: "350px",
|
|
58
|
+
width: "600px",
|
|
59
|
+
backgroundSize: "cover",
|
|
60
|
+
backgroundPosition: "center",
|
|
61
|
+
}}
|
|
62
|
+
></div>
|
|
63
|
+
)}
|
|
64
|
+
{!isContentImage && (
|
|
65
|
+
<div className="text-white text-center">
|
|
66
|
+
No Preview Available
|
|
67
|
+
<button
|
|
68
|
+
className="btn btn-info"
|
|
69
|
+
onClick={downloadButtonClickHandler}
|
|
70
|
+
>
|
|
71
|
+
{" "}
|
|
72
|
+
Download{" "}
|
|
73
|
+
</button>
|
|
74
|
+
</div>
|
|
75
|
+
)}
|
|
76
|
+
</div>
|
|
77
|
+
</div>
|
|
78
|
+
</div>
|
|
79
|
+
</div>
|
|
80
|
+
);
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
export default FloorPlanPopup;
|
|
@@ -1,27 +1,3 @@
|
|
|
1
|
-
.popup-overlay {
|
|
2
|
-
position: fixed;
|
|
3
|
-
top: 0;
|
|
4
|
-
left: 0;
|
|
5
|
-
right: 0;
|
|
6
|
-
bottom: 0;
|
|
7
|
-
background-color: rgba(0, 0, 0, 0.7);
|
|
8
|
-
display: flex;
|
|
9
|
-
justify-content: center;
|
|
10
|
-
align-items: center;
|
|
11
|
-
z-index: 10000;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
.popup-container {
|
|
15
|
-
background-color: transparent;
|
|
16
|
-
border-radius: 8px;
|
|
17
|
-
max-width: 90%;
|
|
18
|
-
max-height: 90%;
|
|
19
|
-
display: flex;
|
|
20
|
-
flex-direction: column;
|
|
21
|
-
align-items: center;
|
|
22
|
-
position: relative;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
1
|
.popup-header {
|
|
26
2
|
display: flex;
|
|
27
3
|
justify-content: center;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import "./ImageListPopup.css";
|
|
2
2
|
import React, { useRef, useState } from "react";
|
|
3
|
-
import blcIconArrowRight from "../../assets/
|
|
4
|
-
import blcIconArrowLeft from "../../assets/
|
|
3
|
+
import blcIconArrowRight from "../../assets/images/blackarrow-Right.svg";
|
|
4
|
+
import blcIconArrowLeft from "../../assets/images/blckarrow-Left.svg";
|
|
5
5
|
import iconClose from "../../assets/images/close.png";
|
|
6
|
+
import "../../styles/common.css";
|
|
6
7
|
|
|
7
8
|
interface PopupProps {
|
|
8
9
|
pictureUrls: { title: string; url: string }[];
|
|
@@ -1,16 +1,3 @@
|
|
|
1
|
-
.popup-overlay {
|
|
2
|
-
position: fixed; /* Fixed position to cover the whole screen */
|
|
3
|
-
top: 0;
|
|
4
|
-
left: 0;
|
|
5
|
-
right: 0;
|
|
6
|
-
bottom: 0;
|
|
7
|
-
background-color: rgba(0, 0, 0, 0.5); /* Semi-transparent background */
|
|
8
|
-
display: flex; /* Flexbox to center the popup */
|
|
9
|
-
justify-content: center; /* Center horizontally */
|
|
10
|
-
align-items: center; /* Center vertically */
|
|
11
|
-
z-index: 10000; /* Ensure it's above other content */
|
|
12
|
-
}
|
|
13
|
-
|
|
14
1
|
.popUpHeader {
|
|
15
2
|
height: 48px;
|
|
16
3
|
font-size: 32px;
|
|
@@ -28,9 +28,9 @@
|
|
|
28
28
|
background-color: #fff;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
.
|
|
32
|
-
padding:
|
|
33
|
-
width:
|
|
31
|
+
.thirdLabels {
|
|
32
|
+
padding: 4px;
|
|
33
|
+
width: 110px;
|
|
34
34
|
height: 25px;
|
|
35
35
|
border-radius: 16px;
|
|
36
36
|
box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);
|
|
@@ -38,8 +38,9 @@
|
|
|
38
38
|
background-color: #fff;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
.
|
|
42
|
-
padding:
|
|
41
|
+
.fourthLabels {
|
|
42
|
+
padding: 2px;
|
|
43
|
+
|
|
43
44
|
width: 100px;
|
|
44
45
|
height: 25px;
|
|
45
46
|
border-radius: 16px;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import React, { useState } from "react";
|
|
2
2
|
// import { FormattedMessage } from "react-intl";
|
|
3
|
-
import layerIcon from "../../assets/
|
|
4
|
-
import heart from "../../assets/
|
|
3
|
+
import layerIcon from "../../assets/images/LayersIcon.svg";
|
|
4
|
+
import heart from "../../assets/images/heart.svg";
|
|
5
5
|
import locationIcon from "../../assets/images/locationIcon.svg";
|
|
6
6
|
import "../PropertyCard/PropertyCard.css";
|
|
7
|
-
import noImageIcon from "../../assets/
|
|
7
|
+
import noImageIcon from "../../assets/images/default-property.jpg";
|
|
8
8
|
// import { formatPrice } from "../../functions/util";
|
|
9
9
|
|
|
10
10
|
interface PopupProps {
|
|
11
|
-
|
|
11
|
+
property: {
|
|
12
12
|
city: string;
|
|
13
13
|
historicalProtection: boolean;
|
|
14
14
|
basement: boolean;
|
|
@@ -23,7 +23,6 @@ interface PopupProps {
|
|
|
23
23
|
pictures: { contentUrl: string }[];
|
|
24
24
|
};
|
|
25
25
|
onClick: any;
|
|
26
|
-
pictureUrl: any[];
|
|
27
26
|
baseUrl: string;
|
|
28
27
|
}
|
|
29
28
|
|
|
@@ -34,15 +33,15 @@ export default function PropertyCard(props: PopupProps) {
|
|
|
34
33
|
setLiked(!liked);
|
|
35
34
|
};
|
|
36
35
|
const pictureUrl =
|
|
37
|
-
props.
|
|
38
|
-
? `${props.baseUrl}${props.
|
|
36
|
+
props.property.pictures && props.property.pictures.length > 0
|
|
37
|
+
? `${props.baseUrl}${props.property.pictures[0].contentUrl}`
|
|
39
38
|
: noImageIcon;
|
|
40
39
|
return (
|
|
41
40
|
<div
|
|
42
|
-
key={props.
|
|
41
|
+
key={props.property.id}
|
|
43
42
|
className="card-body me-4 mb-4 position-relative cardStyle"
|
|
44
43
|
style={{
|
|
45
|
-
backgroundImage: `url(${
|
|
44
|
+
backgroundImage: `url(${pictureUrl})`,
|
|
46
45
|
backgroundSize: "cover",
|
|
47
46
|
backgroundPosition: "center",
|
|
48
47
|
}}
|
|
@@ -55,32 +54,32 @@ export default function PropertyCard(props: PopupProps) {
|
|
|
55
54
|
<img src={layerIcon} alt="Location Icon" className="layersVector" />
|
|
56
55
|
<span className="layersText">{"Grundriss"}</span>
|
|
57
56
|
</label>
|
|
58
|
-
{props.
|
|
59
|
-
<label className="
|
|
57
|
+
{props.property.historicalProtection && (
|
|
58
|
+
<label className="thirdLabels d-flex flex-row justify-content-center align-items-center">
|
|
60
59
|
<span className="layersText p-1">{"Denkmalschutz"}</span>
|
|
61
60
|
</label>
|
|
62
61
|
)}
|
|
63
62
|
|
|
64
|
-
{props.
|
|
63
|
+
{props.property.basement && (
|
|
65
64
|
<label className="secondLabel d-flex flex-row justify-content-center align-items-center">
|
|
66
65
|
<span className="layersText p-1">{"Keller"}</span>
|
|
67
66
|
</label>
|
|
68
67
|
)}
|
|
69
|
-
{props.properties.balcony && (
|
|
70
|
-
<label className="secondLabel d-flex flex-row justify-content-center align-items-center">
|
|
71
|
-
<span className="layersText p-1">{"Balkon"}</span>
|
|
72
|
-
</label>
|
|
73
|
-
)}
|
|
74
68
|
</div>
|
|
75
69
|
<div className="d-flex align-items-center ms-2 start-0 gap-2">
|
|
76
|
-
{props.
|
|
77
|
-
<label className="p-1
|
|
70
|
+
{props.property.terrace && (
|
|
71
|
+
<label className="p-1 thirdLabels d-flex flex-row justify-content-center align-items-center ">
|
|
78
72
|
<span className="layersText">{"Terrace"}</span>
|
|
79
73
|
</label>
|
|
80
74
|
)}
|
|
75
|
+
{props.property.balcony && (
|
|
76
|
+
<label className="secondLabel d-flex flex-row justify-content-center align-items-center">
|
|
77
|
+
<span className="layersText p-1">{"Balkon"}</span>
|
|
78
|
+
</label>
|
|
79
|
+
)}
|
|
81
80
|
|
|
82
|
-
{props.
|
|
83
|
-
<label className="
|
|
81
|
+
{props.property.guestBathroom && (
|
|
82
|
+
<label className="col-1 fourthLabels d-flex flex-row justify-content-center align-items-center ">
|
|
84
83
|
<span className="layersText p-1">{"Gäste-WC"}</span>
|
|
85
84
|
</label>
|
|
86
85
|
)}
|
|
@@ -96,35 +95,35 @@ export default function PropertyCard(props: PopupProps) {
|
|
|
96
95
|
</div>
|
|
97
96
|
<div className="d-flex align-items-center mb-3 position-absolute bottom-0 start-0 p-2">
|
|
98
97
|
<span className="Price col-lg-12 col-md-12 col-sm-12 text-truncate p-1">
|
|
99
|
-
{props.
|
|
98
|
+
{props.property?.askingPrice ?? 0} €
|
|
100
99
|
</span>
|
|
101
100
|
</div>
|
|
102
|
-
<div className="d-flex align-items-center position-absolute bottom-0 start-0 p-2">
|
|
101
|
+
<div className="d-flex w-50 align-items-center position-absolute bottom-0 start-0 p-2">
|
|
103
102
|
<img src={locationIcon} alt="Location Icon" className="Vector" />
|
|
104
|
-
<span className="locationText ">
|
|
105
|
-
{props.
|
|
103
|
+
<span className="locationText text-truncate">
|
|
104
|
+
{props.property.city || "N/A"}
|
|
106
105
|
</span>
|
|
107
106
|
</div>
|
|
108
107
|
<div className="d-flex col-lg-6 col-md-6 col-sm-5 me-lg-0 me-md-0 me-sm-3 justify-content-center mb-2 position-absolute bottom-0 end-0">
|
|
109
108
|
<span className="detail col-lg-4 col-md-4 col-sm-6 text-truncate border-end ">
|
|
110
|
-
{+props.
|
|
109
|
+
{+props.property.rooms}
|
|
111
110
|
<br />
|
|
112
111
|
{/* <FormattedMessage id="ROOMS" /> */}
|
|
113
112
|
<span>Zimmer</span>
|
|
114
113
|
</span>
|
|
115
114
|
<span className="detail col-lg-3 col-md-3 col-sm-4 text-truncate ">
|
|
116
|
-
{+props.
|
|
115
|
+
{+props.property.bathrooms}
|
|
117
116
|
<br />
|
|
118
117
|
{/* <FormattedMessage
|
|
119
118
|
id="BATHROOM"
|
|
120
119
|
values={{ itemCount: +props.property.bathrooms }}
|
|
121
120
|
/> */}
|
|
122
|
-
{+props.
|
|
123
|
-
|
|
121
|
+
{/* {+props.property.bathrooms} */}
|
|
122
|
+
|
|
124
123
|
<span>Bäd</span>
|
|
125
124
|
</span>
|
|
126
125
|
<span className="detail col-lg-5 col-md-5 col-sm-7 text-truncate border-start me-3">
|
|
127
|
-
{props.
|
|
126
|
+
{props.property.usableArea} m²
|
|
128
127
|
<br />
|
|
129
128
|
{/* <FormattedMessage id="LIVING_SPACE" /> */}
|
|
130
129
|
<span>Wohnfläche</span>
|