nestiq-component-library 1.0.36 → 1.0.38
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/assets/images/close.b5ce9141e80c688b.png +0 -0
- package/dist/assets/images/icon_close_2.png +0 -0
- package/dist/components/Button/Button.js +6 -0
- package/dist/components/ImageListPopup/ImageListPopup.d.ts +0 -1
- package/dist/components/ImageListPopup/ImageListPopup.js +26 -0
- package/dist/components/Popup/Popup.d.ts +0 -1
- package/dist/components/Popup/Popup.js +12 -0
- package/dist/components/PropertyCard/PropertyCard.d.ts +5 -1
- package/dist/components/SharePopup/PopUp.d.ts +7 -0
- package/dist/index.d.ts +0 -3
- package/dist/index.es.js +30 -37
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +29 -39
- package/dist/index.js.map +1 -1
- package/package.json +1 -4
- package/rollup.config.mjs +35 -35
- package/src/assets/images/close.png +0 -0
- package/src/assets/images/close_white.png +0 -0
- package/src/assets/images/icon_close 2.png +0 -0
- package/src/assets/images/icon_share 1.svg +3 -0
- package/src/components/ImageListPopup/ImageListPopup.css +107 -83
- package/src/components/ImageListPopup/ImageListPopup.tsx +140 -142
- package/src/components/Popup/Popup.css +13 -0
- package/src/components/Popup/Popup.tsx +28 -29
- package/src/components/PropertyCard/PropertyCard.tsx +19 -14
- package/src/components/PropertyDetailsHeader/PropertyDetailsHeader.tsx +84 -80
- package/src/components/SharePopup/{SharePopup.css → PopUp.css} +14 -0
- package/src/components/SharePopup/{SharePopup.tsx → PopUp.tsx} +140 -139
- package/src/index.tsx +7 -13
- package/dist/components/SharePopup/SharePopup.d.ts +0 -4
- package/dist/components/ToastWrapper/ToastWrapper.d.ts +0 -4
- package/src/assets/images/Images/envelope-fill.svg +0 -3
- package/src/assets/images/Images/facebook.svg +0 -3
- package/src/assets/images/Images/linkedin.svg +0 -3
- package/src/assets/images/Images/twitter-x.svg +0 -3
- package/src/assets/images/Images/whatsapp.svg +0 -3
- package/src/components/ToastWrapper/ToastWrapper.tsx +0 -25
- package/src/styles/common.css +0 -12
- /package/{src/assets/images/Images → dist/assets/images}/Icon_rightArrow.svg +0 -0
- /package/{src/assets/images/Images → dist/assets/images}/LayersIcon.svg +0 -0
- /package/{src/assets/images/Images → dist/assets/images}/blackarrow-Right.svg +0 -0
- /package/{src/assets/images/Images → dist/assets/images}/blckarrow-Left.svg +0 -0
- /package/{src/assets/images/Images → dist/assets/images}/chevron-left.svg +0 -0
- /package/{src/assets/images/Images → dist/assets/images}/default-property.jpg +0 -0
- /package/{src/assets/images/Images → dist/assets/images}/heartIcon.svg +0 -0
- /package/{src/assets/images/Images → dist/assets/images}/icon-close-white.webp +0 -0
- /package/{src/assets/images/Images/icon_close 2.png → dist/assets/images/icon_close 2.e41bb9a4db48e048.png} +0 -0
- /package/{src/assets/images/Images → dist/assets/images}/icon_gallery.svg +0 -0
- /package/{src/assets/images/Images → dist/assets/images}/icon_map.svg +0 -0
- /package/{src/assets/images/Images/icon_share 1.svg → dist/assets/images/icon_share_1.svg} +0 -0
- /package/{src/assets/images/Images → dist/assets/images}/layer_icon.svg +0 -0
- /package/{src/assets/images/Images → dist/assets/images}/locationIcon.svg +0 -0
- /package/{src/assets/images/Images → dist/assets/images}/locationIconBlack.svg +0 -0
- /package/{src/assets/images/Images → dist/assets/images}/no-image-icon.png +0 -0
- /package/src/assets/images/{Images/Logo-Nestiq_black.svg → Logo-Nestiq_black.svg} +0 -0
- /package/src/assets/images/{Images/arrow-right-short.svg → arrow-right-short.svg} +0 -0
- /package/src/assets/images/{Images/arrow-right.svg → arrow-right.svg} +0 -0
- /package/src/assets/images/{Images/dropdownIcon.svg → dropdownIcon.svg} +0 -0
- /package/src/assets/images/{Images/facebook_icon.svg → facebook_icon.svg} +0 -0
- /package/src/assets/images/{Images/google_icon.svg → google_icon.svg} +0 -0
- /package/src/assets/images/{Images/heart.svg → heart.svg} +0 -0
- /package/src/assets/images/{Images/house.jpg → house.jpg} +0 -0
- /package/src/assets/images/{Images/icon_checkmark.svg → icon_checkmark.svg} +0 -0
- /package/src/assets/images/{Images/icon_home.svg → icon_home.svg} +0 -0
- /package/src/assets/images/{Images/icon_user.png → icon_user.png} +0 -0
- /package/src/assets/images/{Images/left arrow.svg → left arrow.svg} +0 -0
- /package/src/assets/images/{Images/left-arrow.svg → left-arrow.svg} +0 -0
- /package/src/assets/images/{Images/mail-icon.png → mail-icon.png} +0 -0
- /package/src/assets/images/{Images/right arrow.svg → right arrow.svg} +0 -0
- /package/src/assets/images/{Images/right-arrow.svg → right-arrow.svg} +0 -0
- /package/src/assets/images/{Images/warning.svg → warning.svg} +0 -0
- /package/src/assets/images/{Images/x.svg → x.svg} +0 -0
|
@@ -8,7 +8,7 @@ import noImageIcon from "../../assets/Images/default-property.jpg";
|
|
|
8
8
|
// import { formatPrice } from "../../functions/util";
|
|
9
9
|
|
|
10
10
|
interface PopupProps {
|
|
11
|
-
|
|
11
|
+
properties: {
|
|
12
12
|
city: string;
|
|
13
13
|
historicalProtection: boolean;
|
|
14
14
|
basement: boolean;
|
|
@@ -20,9 +20,11 @@ interface PopupProps {
|
|
|
20
20
|
id: string;
|
|
21
21
|
rooms: string;
|
|
22
22
|
askingPrice: string;
|
|
23
|
+
pictures: { contentUrl: string }[];
|
|
23
24
|
};
|
|
24
25
|
onClick: any;
|
|
25
26
|
pictureUrl: any[];
|
|
27
|
+
baseUrl: string;
|
|
26
28
|
}
|
|
27
29
|
|
|
28
30
|
export default function PropertyCard(props: PopupProps) {
|
|
@@ -31,10 +33,13 @@ export default function PropertyCard(props: PopupProps) {
|
|
|
31
33
|
const handleLike = () => {
|
|
32
34
|
setLiked(!liked);
|
|
33
35
|
};
|
|
34
|
-
|
|
36
|
+
const pictureUrl =
|
|
37
|
+
props.properties.pictures && props.properties.pictures.length > 0
|
|
38
|
+
? `${props.baseUrl}${props.properties.pictures[0].contentUrl}`
|
|
39
|
+
: noImageIcon;
|
|
35
40
|
return (
|
|
36
41
|
<div
|
|
37
|
-
key={props.
|
|
42
|
+
key={props.properties.id}
|
|
38
43
|
className="card-body me-4 mb-4 position-relative cardStyle"
|
|
39
44
|
style={{
|
|
40
45
|
backgroundImage: `url(${props.pictureUrl}) ?? ${noImageIcon}`,
|
|
@@ -50,31 +55,31 @@ export default function PropertyCard(props: PopupProps) {
|
|
|
50
55
|
<img src={layerIcon} alt="Location Icon" className="layersVector" />
|
|
51
56
|
<span className="layersText">{"Grundriss"}</span>
|
|
52
57
|
</label>
|
|
53
|
-
{props.
|
|
58
|
+
{props.properties.historicalProtection && (
|
|
54
59
|
<label className="thirdLabel d-flex flex-row justify-content-center align-items-center">
|
|
55
60
|
<span className="layersText">{"Denkmalschutz"}</span>
|
|
56
61
|
</label>
|
|
57
62
|
)}
|
|
58
63
|
|
|
59
|
-
{props.
|
|
64
|
+
{props.properties.basement && (
|
|
60
65
|
<label className="secondLabel d-flex flex-row justify-content-center align-items-center">
|
|
61
66
|
<span className="layersText ">{"Keller"}</span>
|
|
62
67
|
</label>
|
|
63
68
|
)}
|
|
64
|
-
{props.
|
|
69
|
+
{props.properties.balcony && (
|
|
65
70
|
<label className="secondLabel d-flex flex-row justify-content-center align-items-center">
|
|
66
71
|
<span className="layersText ">{"Balkon"}</span>
|
|
67
72
|
</label>
|
|
68
73
|
)}
|
|
69
74
|
</div>
|
|
70
75
|
<div className="d-flex align-items-center ms-2 start-0 gap-2">
|
|
71
|
-
{props.
|
|
76
|
+
{props.properties.terrace && (
|
|
72
77
|
<label className="thirdLabel d-flex flex-row justify-content-center align-items-center ">
|
|
73
78
|
<span className="layersText">{"Terrace"}</span>
|
|
74
79
|
</label>
|
|
75
80
|
)}
|
|
76
81
|
|
|
77
|
-
{props.
|
|
82
|
+
{props.properties.guestBathroom && (
|
|
78
83
|
<label className="fourthLabel d-flex flex-row justify-content-center align-items-center ">
|
|
79
84
|
<span className="layersText">{"Gäste-WC"}</span>
|
|
80
85
|
</label>
|
|
@@ -91,33 +96,33 @@ export default function PropertyCard(props: PopupProps) {
|
|
|
91
96
|
</div>
|
|
92
97
|
<div className="d-flex align-items-center mb-3 position-absolute bottom-0 start-0 p-2">
|
|
93
98
|
<span className="Price col-lg-12 col-md-12 col-sm-12 text-truncate">
|
|
94
|
-
{props.
|
|
99
|
+
{props.properties?.askingPrice ?? 0} €
|
|
95
100
|
</span>
|
|
96
101
|
</div>
|
|
97
102
|
<div className="d-flex align-items-center position-absolute bottom-0 start-0 p-2">
|
|
98
103
|
<img src={locationIcon} alt="Location Icon" className="Vector" />
|
|
99
|
-
<span className="locationText ">{props.
|
|
104
|
+
<span className="locationText ">{props.properties.city || "N/A"}</span>
|
|
100
105
|
</div>
|
|
101
106
|
<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">
|
|
102
107
|
<span className="detail col-lg-4 col-md-4 col-sm-6 text-truncate border-end ">
|
|
103
|
-
{+props.
|
|
108
|
+
{+props.properties.rooms}
|
|
104
109
|
<br />
|
|
105
110
|
{/* <FormattedMessage id="ROOMS" /> */}
|
|
106
111
|
<span>Zimmer</span>
|
|
107
112
|
</span>
|
|
108
113
|
<span className="detail col-lg-3 col-md-3 col-sm-4 text-truncate ">
|
|
109
|
-
{+props.
|
|
114
|
+
{+props.properties.bathrooms}
|
|
110
115
|
<br />
|
|
111
116
|
{/* <FormattedMessage
|
|
112
117
|
id="BATHROOM"
|
|
113
118
|
values={{ itemCount: +props.property.bathrooms }}
|
|
114
119
|
/> */}
|
|
115
|
-
{+props.
|
|
120
|
+
{+props.properties.bathrooms}
|
|
116
121
|
<br></br>
|
|
117
122
|
<span>Bäd</span>
|
|
118
123
|
</span>
|
|
119
124
|
<span className="detail col-lg-5 col-md-5 col-sm-7 text-truncate border-start me-3">
|
|
120
|
-
{props.
|
|
125
|
+
{props.properties.usableArea} m²
|
|
121
126
|
<br />
|
|
122
127
|
{/* <FormattedMessage id="LIVING_SPACE" /> */}
|
|
123
128
|
<span>Wohnfläche</span>
|
|
@@ -1,80 +1,84 @@
|
|
|
1
|
-
import React, { useState } from "react";
|
|
2
|
-
// import { FormattedMessage } from "react-intl";
|
|
3
|
-
import ShareIcon from "../../assets/images/icon_share_1.svg";
|
|
4
|
-
import locationIcon from "../../assets/images/locationIconBlack.svg";
|
|
5
|
-
import "./PropertyDetailsHeader.css";
|
|
6
|
-
import
|
|
7
|
-
|
|
8
|
-
export interface PopupProps {
|
|
9
|
-
property: {
|
|
10
|
-
city: string;
|
|
11
|
-
constructedArea: string;
|
|
12
|
-
rooms: string;
|
|
13
|
-
propertyArea: string;
|
|
14
|
-
askingPrice: string;
|
|
15
|
-
};
|
|
16
|
-
title: string;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export default function PropertyDetailsHeader(props: PopupProps) {
|
|
20
|
-
const [showPopUp, setShowPopUp] = useState(false);
|
|
21
|
-
|
|
22
|
-
const handlePopUp = () => {
|
|
23
|
-
setShowPopUp(!showPopUp);
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
return (
|
|
27
|
-
<div className="Pheader compact d-flex col-12 col-lg-12 position-relative mt-5 ">
|
|
28
|
-
<div className="header_Text d-flex col-lg-7 col-md-9 mt-4 ms-4 ">
|
|
29
|
-
<strong>{props.title ?? "-"}</strong>
|
|
30
|
-
</div>
|
|
31
|
-
<div className="header_Text text-truncate col-lg-6 col-md-7 d-flex flex-row position-absolute ms-4">
|
|
32
|
-
<img src={locationIcon} className="vector me-2" alt="location Icon" />
|
|
33
|
-
|
|
34
|
-
<div className="propText text-truncate col-lg-6 col-md-6 d-flex align-items-center">
|
|
35
|
-
{props.property.city}
|
|
36
|
-
</div>
|
|
37
|
-
</div>
|
|
38
|
-
<div className="d-flex col-lg-5 col-md-6 col-sm-5 justify-content-end position-absolute end-0 mt-4">
|
|
39
|
-
{/* <img src={Hearticon} alt="Location Icon" className="v_share me-3" /> */}
|
|
40
|
-
<img
|
|
41
|
-
src={ShareIcon}
|
|
42
|
-
alt="share icon"
|
|
43
|
-
className="v_share me-3"
|
|
44
|
-
onClick={handlePopUp}
|
|
45
|
-
/>
|
|
46
|
-
</div>
|
|
47
|
-
<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">
|
|
48
|
-
{props && (
|
|
49
|
-
<div className=" propText col-lg-3 col-md-3 h-100 d-flex align-items-center justify-content-center ">
|
|
50
|
-
{props.property.askingPrice} <br />
|
|
51
|
-
Kaufpreis
|
|
52
|
-
</div>
|
|
53
|
-
)}
|
|
54
|
-
{props && (
|
|
55
|
-
<div className="propText col-lg-3 col-md-3 d-flex h-100 align-items-center justify-content-center">
|
|
56
|
-
{props.property.constructedArea} m² <br />
|
|
57
|
-
Wohnfläche
|
|
58
|
-
{/* <FormattedMessage id="LIVING_SPACE" /> */}
|
|
59
|
-
</div>
|
|
60
|
-
)}
|
|
61
|
-
{props && (
|
|
62
|
-
<div className="propText col-lg-3 col-md-3 d-flex h-100 align-items-center justify-content-center">
|
|
63
|
-
{props.property.rooms} <br />
|
|
64
|
-
Zimmer
|
|
65
|
-
{/* <FormattedMessage id="ROOMS" /> */}
|
|
66
|
-
</div>
|
|
67
|
-
)}
|
|
68
|
-
{props && (
|
|
69
|
-
<div className="propText col-lg-3 col-md-3 d-flex h-100 align-items-center justify-content-center">
|
|
70
|
-
{props.property.propertyArea} m²
|
|
71
|
-
<br />
|
|
72
|
-
Grundstück
|
|
73
|
-
{/* <FormattedMessage id="Grundstück" /> */}
|
|
74
|
-
</div>
|
|
75
|
-
)}
|
|
76
|
-
</div>
|
|
77
|
-
{showPopUp &&
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
1
|
+
import React, { useState } from "react";
|
|
2
|
+
// import { FormattedMessage } from "react-intl";
|
|
3
|
+
import ShareIcon from "../../assets/images/icon_share_1.svg";
|
|
4
|
+
import locationIcon from "../../assets/images/locationIconBlack.svg";
|
|
5
|
+
import "./PropertyDetailsHeader.css";
|
|
6
|
+
import PopUp from "../SharePopup/PopUp";
|
|
7
|
+
|
|
8
|
+
export interface PopupProps {
|
|
9
|
+
property: {
|
|
10
|
+
city: string;
|
|
11
|
+
constructedArea: string;
|
|
12
|
+
rooms: string;
|
|
13
|
+
propertyArea: string;
|
|
14
|
+
askingPrice: string;
|
|
15
|
+
};
|
|
16
|
+
title: string;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export default function PropertyDetailsHeader(props: PopupProps) {
|
|
20
|
+
const [showPopUp, setShowPopUp] = useState(false);
|
|
21
|
+
|
|
22
|
+
const handlePopUp = () => {
|
|
23
|
+
setShowPopUp(!showPopUp);
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
return (
|
|
27
|
+
<div className="Pheader compact d-flex col-12 col-lg-12 position-relative mt-5 ">
|
|
28
|
+
<div className="header_Text d-flex col-lg-7 col-md-9 mt-4 ms-4 ">
|
|
29
|
+
<strong>{props.title ?? "-"}</strong>
|
|
30
|
+
</div>
|
|
31
|
+
<div className="header_Text text-truncate col-lg-6 col-md-7 d-flex flex-row position-absolute ms-4">
|
|
32
|
+
<img src={locationIcon} className="vector me-2" alt="location Icon" />
|
|
33
|
+
|
|
34
|
+
<div className="propText text-truncate col-lg-6 col-md-6 d-flex align-items-center">
|
|
35
|
+
{props.property.city}
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
38
|
+
<div className="d-flex col-lg-5 col-md-6 col-sm-5 justify-content-end position-absolute end-0 mt-4">
|
|
39
|
+
{/* <img src={Hearticon} alt="Location Icon" className="v_share me-3" /> */}
|
|
40
|
+
<img
|
|
41
|
+
src={ShareIcon}
|
|
42
|
+
alt="share icon"
|
|
43
|
+
className="v_share me-3"
|
|
44
|
+
onClick={handlePopUp}
|
|
45
|
+
/>
|
|
46
|
+
</div>
|
|
47
|
+
<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">
|
|
48
|
+
{props && (
|
|
49
|
+
<div className=" propText col-lg-3 col-md-3 h-100 d-flex align-items-center justify-content-center ">
|
|
50
|
+
{props.property.askingPrice} <br />
|
|
51
|
+
Kaufpreis
|
|
52
|
+
</div>
|
|
53
|
+
)}
|
|
54
|
+
{props && (
|
|
55
|
+
<div className="propText col-lg-3 col-md-3 d-flex h-100 align-items-center justify-content-center">
|
|
56
|
+
{props.property.constructedArea} m² <br />
|
|
57
|
+
Wohnfläche
|
|
58
|
+
{/* <FormattedMessage id="LIVING_SPACE" /> */}
|
|
59
|
+
</div>
|
|
60
|
+
)}
|
|
61
|
+
{props && (
|
|
62
|
+
<div className="propText col-lg-3 col-md-3 d-flex h-100 align-items-center justify-content-center">
|
|
63
|
+
{props.property.rooms} <br />
|
|
64
|
+
Zimmer
|
|
65
|
+
{/* <FormattedMessage id="ROOMS" /> */}
|
|
66
|
+
</div>
|
|
67
|
+
)}
|
|
68
|
+
{props && (
|
|
69
|
+
<div className="propText col-lg-3 col-md-3 d-flex h-100 align-items-center justify-content-center">
|
|
70
|
+
{props.property.propertyArea} m²
|
|
71
|
+
<br />
|
|
72
|
+
Grundstück
|
|
73
|
+
{/* <FormattedMessage id="Grundstück" /> */}
|
|
74
|
+
</div>
|
|
75
|
+
)}
|
|
76
|
+
</div>
|
|
77
|
+
{showPopUp && (
|
|
78
|
+
<PopUp
|
|
79
|
+
onClick={handlePopUp}
|
|
80
|
+
/>
|
|
81
|
+
)}
|
|
82
|
+
</div>
|
|
83
|
+
);
|
|
84
|
+
}
|
|
@@ -1,3 +1,17 @@
|
|
|
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: 2000; /* Ensure it's above other content */
|
|
12
|
+
|
|
13
|
+
}
|
|
14
|
+
|
|
1
15
|
.shareSection {
|
|
2
16
|
height: 340px;
|
|
3
17
|
padding: 40px;
|
|
@@ -1,139 +1,140 @@
|
|
|
1
|
-
import React, { useRef, useState } from "react";
|
|
2
|
-
import email from "../../assets/Images/envelope-fill.svg";
|
|
3
|
-
import facebook from "../../assets/Images/facebook.svg";
|
|
4
|
-
import x from "../../assets/Images/icon_close_2.png";
|
|
5
|
-
import linkedln from "../../assets/Images/linkedin.svg";
|
|
6
|
-
import Xtwitter from "../../assets/Images/twitter-x.svg";
|
|
7
|
-
import whatsapp from "../../assets/Images/whatsapp.svg";
|
|
8
|
-
import "./
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
<
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
1
|
+
import React, { useRef, useState } from "react";
|
|
2
|
+
import email from "../../assets/Images/envelope-fill.svg";
|
|
3
|
+
import facebook from "../../assets/Images/facebook.svg";
|
|
4
|
+
import x from "../../assets/Images/icon_close_2.png";
|
|
5
|
+
import linkedln from "../../assets/Images/linkedin.svg";
|
|
6
|
+
import Xtwitter from "../../assets/Images/twitter-x.svg";
|
|
7
|
+
import whatsapp from "../../assets/Images/whatsapp.svg";
|
|
8
|
+
import "./PopUp.css";
|
|
9
|
+
|
|
10
|
+
interface Popupprops {
|
|
11
|
+
onClick: () => void;
|
|
12
|
+
}
|
|
13
|
+
export default function PopUp(props: Popupprops) {
|
|
14
|
+
const [showPopUp, setShowPopUp] = useState(true);
|
|
15
|
+
|
|
16
|
+
const handleClose = () => {
|
|
17
|
+
setShowPopUp(false);
|
|
18
|
+
};
|
|
19
|
+
const urlInputRef = useRef<HTMLInputElement | null>(null);
|
|
20
|
+
|
|
21
|
+
const copyToClipboard = () => {
|
|
22
|
+
urlInputRef.current!.select();
|
|
23
|
+
document.execCommand("copy");
|
|
24
|
+
// toast.success("URL copied to clipboard!");
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
return (
|
|
28
|
+
<div>
|
|
29
|
+
{showPopUp && (
|
|
30
|
+
<div className="popup-overlay">
|
|
31
|
+
<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">
|
|
32
|
+
<div className="end-0 top-0 position-absolute ">
|
|
33
|
+
<img
|
|
34
|
+
src={x}
|
|
35
|
+
alt="close"
|
|
36
|
+
className="closeIcon me-2"
|
|
37
|
+
onClick={handleClose}
|
|
38
|
+
/>
|
|
39
|
+
</div>
|
|
40
|
+
<div className="popUpHeader col-lg-12 d-flex justify-content-center mb-2">
|
|
41
|
+
Jetzt teilen und weitersagen!
|
|
42
|
+
</div>
|
|
43
|
+
<div className="h-25 col-lg-12 socialMediaIconsSection d-flex flex-row align-items-center justify-content-center mx-auto">
|
|
44
|
+
<a
|
|
45
|
+
href="https://twitter.com/intent/tweet?url=https://www.nestiq.de&text=Nestiq"
|
|
46
|
+
className="text-decoration-none"
|
|
47
|
+
target="blank"
|
|
48
|
+
>
|
|
49
|
+
<div className=" flex-column d-flex align-items-center">
|
|
50
|
+
<img
|
|
51
|
+
src={Xtwitter}
|
|
52
|
+
alt="twitter"
|
|
53
|
+
className="socialMediaIcons"
|
|
54
|
+
/>
|
|
55
|
+
<span className="socialMediaIconText">Xtwitter</span>
|
|
56
|
+
</div>
|
|
57
|
+
</a>
|
|
58
|
+
|
|
59
|
+
<a
|
|
60
|
+
href="https://www.facebook.com/sharer/sharer.php?u=https://www.nestiq.de"
|
|
61
|
+
className="text-decoration-none"
|
|
62
|
+
target="blank"
|
|
63
|
+
>
|
|
64
|
+
<div className=" flex-column d-flex align-items-center">
|
|
65
|
+
<img
|
|
66
|
+
src={facebook}
|
|
67
|
+
alt="facebook"
|
|
68
|
+
className="socialMediaIcons "
|
|
69
|
+
/>
|
|
70
|
+
<span className="socialMediaIconText">Facebook</span>
|
|
71
|
+
</div>
|
|
72
|
+
</a>
|
|
73
|
+
|
|
74
|
+
<a
|
|
75
|
+
href="https://api.whatsapp.com/send?text=https://www.nestiq.de"
|
|
76
|
+
target="blank"
|
|
77
|
+
className="text-decoration-none"
|
|
78
|
+
>
|
|
79
|
+
<div className=" flex-column d-flex align-items-center">
|
|
80
|
+
<img
|
|
81
|
+
src={whatsapp}
|
|
82
|
+
alt="whatsapp"
|
|
83
|
+
className=" socialMediaIcons"
|
|
84
|
+
/>
|
|
85
|
+
<span className="socialMediaIconText">WhatsApp</span>
|
|
86
|
+
</div>
|
|
87
|
+
</a>
|
|
88
|
+
|
|
89
|
+
<a
|
|
90
|
+
href="https://www.linkedin.com/shareArticle?mini=true&url=https://www.nestiq.de"
|
|
91
|
+
target="blank"
|
|
92
|
+
className="text-decoration-none"
|
|
93
|
+
>
|
|
94
|
+
<div className=" flex-column d-flex align-items-center">
|
|
95
|
+
<img
|
|
96
|
+
src={linkedln}
|
|
97
|
+
alt="linkedin"
|
|
98
|
+
className=" socialMediaIcons"
|
|
99
|
+
/>
|
|
100
|
+
<span className="socialMediaIconText">LinkedIn</span>
|
|
101
|
+
</div>
|
|
102
|
+
</a>
|
|
103
|
+
|
|
104
|
+
<a
|
|
105
|
+
href="https://www.nestiq.de"
|
|
106
|
+
target="blank"
|
|
107
|
+
className="text-decoration-none"
|
|
108
|
+
>
|
|
109
|
+
<div className=" flex-column d-flex align-items-center">
|
|
110
|
+
<img src={email} alt="email" className=" socialMediaIcons" />
|
|
111
|
+
<span className="socialMediaIconText">E-mail</span>
|
|
112
|
+
</div>
|
|
113
|
+
</a>
|
|
114
|
+
</div>
|
|
115
|
+
<div className="col-10 mx-auto">
|
|
116
|
+
<div className=" row align-items-center position-relative">
|
|
117
|
+
<input
|
|
118
|
+
ref={urlInputRef}
|
|
119
|
+
type="text"
|
|
120
|
+
className="popup_search-input rounded-4 border border-0 "
|
|
121
|
+
placeholder="Enter link here"
|
|
122
|
+
value={window.location.href}
|
|
123
|
+
readOnly
|
|
124
|
+
/>
|
|
125
|
+
<button
|
|
126
|
+
onClick={copyToClipboard}
|
|
127
|
+
className="popupcustom-button border border-0 position-absolute me-2 col-lg-3 col-md-3 col-sm-3 rounded-4 fs-6"
|
|
128
|
+
type="button"
|
|
129
|
+
id="button"
|
|
130
|
+
>
|
|
131
|
+
<strong>Kopieren</strong>
|
|
132
|
+
</button>
|
|
133
|
+
</div>
|
|
134
|
+
</div>
|
|
135
|
+
</div>
|
|
136
|
+
</div>
|
|
137
|
+
)}
|
|
138
|
+
</div>
|
|
139
|
+
);
|
|
140
|
+
}
|
package/src/index.tsx
CHANGED
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export { default as
|
|
4
|
-
export { default as
|
|
5
|
-
|
|
6
|
-
export { default as
|
|
7
|
-
|
|
8
|
-
export { default as PropertyCard } from "./components/PropertyCard//PropertyCard";
|
|
9
|
-
export { default as SharePopup } from "./components/SharePopup/SharePopup";
|
|
10
|
-
export {
|
|
11
|
-
default as ToastWrapper,
|
|
12
|
-
showToast,
|
|
13
|
-
} from "./components/ToastWrapper/ToastWrapper";
|
|
1
|
+
export { default as Button } from "./components/Button/Button";
|
|
2
|
+
export { default as Popup } from "./components/Popup/Popup";
|
|
3
|
+
// export { default as ImageListPopup } from "./components/ImageListPopup/ImageListPopup";
|
|
4
|
+
export { default as PropertyDetailsHeader } from "./components/PropertyDetailsHeader/PropertyDetailsHeader";
|
|
5
|
+
export { default as PropertyImageList } from "./components/PropertyImageList//PropertyImageList";
|
|
6
|
+
export { default as PropertyCard } from "./components/PropertyCard//PropertyCard";
|
|
7
|
+
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-envelope-fill" viewBox="0 0 16 16">
|
|
2
|
-
<path d="M.05 3.555A2 2 0 0 1 2 2h12a2 2 0 0 1 1.95 1.555L8 8.414zM0 4.697v7.104l5.803-3.558zM6.761 8.83l-6.57 4.027A2 2 0 0 0 2 14h12a2 2 0 0 0 1.808-1.144l-6.57-4.027L8 9.586zm3.436-.586L16 11.801V4.697z"/>
|
|
3
|
-
</svg>
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-facebook" viewBox="0 0 16 16">
|
|
2
|
-
<path d="M16 8.049c0-4.446-3.582-8.05-8-8.05C3.58 0-.002 3.603-.002 8.05c0 4.017 2.926 7.347 6.75 7.951v-5.625h-2.03V8.05H6.75V6.275c0-2.017 1.195-3.131 3.022-3.131.876 0 1.791.157 1.791.157v1.98h-1.009c-.993 0-1.303.621-1.303 1.258v1.51h2.218l-.354 2.326H9.25V16c3.824-.604 6.75-3.934 6.75-7.951"/>
|
|
3
|
-
</svg>
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-linkedin" viewBox="0 0 16 16">
|
|
2
|
-
<path d="M0 1.146C0 .513.526 0 1.175 0h13.65C15.474 0 16 .513 16 1.146v13.708c0 .633-.526 1.146-1.175 1.146H1.175C.526 16 0 15.487 0 14.854zm4.943 12.248V6.169H2.542v7.225zm-1.2-8.212c.837 0 1.358-.554 1.358-1.248-.015-.709-.52-1.248-1.342-1.248S2.4 3.226 2.4 3.934c0 .694.521 1.248 1.327 1.248zm4.908 8.212V9.359c0-.216.016-.432.08-.586.173-.431.568-.878 1.232-.878.869 0 1.216.662 1.216 1.634v3.865h2.401V9.25c0-2.22-1.184-3.252-2.764-3.252-1.274 0-1.845.7-2.165 1.193v.025h-.016l.016-.025V6.169h-2.4c.03.678 0 7.225 0 7.225z"/>
|
|
3
|
-
</svg>
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-twitter-x" viewBox="0 0 16 16">
|
|
2
|
-
<path d="M12.6.75h2.454l-5.36 6.142L16 15.25h-4.937l-3.867-5.07-4.425 5.07H.316l5.733-6.57L0 .75h5.063l3.495 4.633L12.601.75Zm-.86 13.028h1.36L4.323 2.145H2.865z"/>
|
|
3
|
-
</svg>
|