iceholidays-frontend 0.10.0 → 0.12.0
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.
- checksums.yaml +4 -4
- data/app/assets/stylesheets/iceholidays/frontend/layout.scss +87 -26
- data/app/assets/stylesheets/iceholidays/frontend/utils/_antd_overrides.scss +27 -3
- data/app/javascript/api-services/contact-us-api.service.ts +11 -0
- data/app/javascript/application.js +16 -1
- data/app/javascript/react/layouts/MainHeader.tsx +43 -37
- data/app/javascript/react/layouts/MainLayout.tsx +4 -1
- data/app/javascript/react/pages/ContactUsPage.tsx +19 -8
- data/app/javascript/react/pages/ShowPage.tsx +1 -1
- data/lib/iceholidays/frontend/version.rb +1 -1
- data/public/iceholidays-assets/application.css +65 -10
- data/public/iceholidays-assets/application.js +95 -95
- data/public/iceholidays-assets/application.js.map +4 -4
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a3ec38ae7c3d23dd0728bb4db5695e9ce2a59be9d3ec5b4318b57b2bdef2883d
|
|
4
|
+
data.tar.gz: 786da9eb7f5a1242153cb409a080dec4645ab22040dd0efd1af221b130fa279e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 50e8ad6881de2f85f52f003517f290beabb02725320821b689236fa31cc144115d9317f6eeffe4be1cdbeac878698de10c772c29a300d8ecc4a39879cca5f951
|
|
7
|
+
data.tar.gz: adbae28d5c2eb0a3d1e59163d21e11913592b52b45f5b2e78ade3f2f363a64e67cb81a92bc38e908a9fb54eab02b921ad4276ae67ccbac061ee7acdee3b19991
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
height: 50px;
|
|
6
6
|
width: 100%;
|
|
7
7
|
background: linear-gradient(241.37deg, #D1AC6E -108.33%, #D1AC6E -14.72%, $secondary-color -2.73%, #B68B31 108.18%);
|
|
8
|
-
padding-inline-end: 25px;
|
|
8
|
+
// padding-inline-end: 25px;
|
|
9
9
|
display: inline-flex;
|
|
10
10
|
justify-content: space-between;
|
|
11
11
|
align-items: center;
|
|
@@ -39,27 +39,28 @@
|
|
|
39
39
|
padding-top: 25px;
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
|
+
}
|
|
43
|
+
|
|
42
44
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
45
|
+
.get-brochure{
|
|
46
|
+
width: 152px;
|
|
47
|
+
height: var(--button-height);
|
|
48
|
+
padding: 7px 8px 7px 8px;
|
|
49
|
+
border-radius: 20px;
|
|
50
|
+
border: 1px solid;
|
|
51
|
+
background: linear-gradient(287.63deg, $primary-color -19.9%, $primary-color 10.87%, #F9E298 26.63%, #B68B31 93.91%);
|
|
52
|
+
border-image-source: linear-gradient(0deg, rgba(255, 255, 255, 0.5) 0%, rgba(42, 42, 42, 0.5) 100%);
|
|
53
|
+
box-shadow: 0px 3px 10px 0px #AA853E80, 0px 4px 4px 0px #F9F6F31A inset;
|
|
54
|
+
text-align: center;
|
|
55
|
+
text-transform: uppercase;
|
|
56
|
+
font-family: $font-default;
|
|
57
|
+
font-size: 14px;
|
|
58
|
+
font-weight: 500;
|
|
59
|
+
line-height: 21px;
|
|
60
|
+
letter-spacing: 0.05em;
|
|
61
|
+
text-align: left;
|
|
62
|
+
text-underline-position: from-font;
|
|
63
|
+
text-decoration-skip-ink: none;
|
|
63
64
|
}
|
|
64
65
|
|
|
65
66
|
#main-footer{
|
|
@@ -186,7 +187,8 @@
|
|
|
186
187
|
height: 56px;
|
|
187
188
|
}
|
|
188
189
|
|
|
189
|
-
.ant-menu-item:has(.logo_desktop)
|
|
190
|
+
.ant-menu-item:has(.logo_desktop),
|
|
191
|
+
.ant-menu-item:has(.get-brochure){
|
|
190
192
|
display: none;
|
|
191
193
|
}
|
|
192
194
|
}
|
|
@@ -215,25 +217,30 @@
|
|
|
215
217
|
}
|
|
216
218
|
}
|
|
217
219
|
|
|
218
|
-
@media only screen and (min-width:
|
|
220
|
+
@media only screen and (min-width: 769px) {
|
|
219
221
|
#main-header{
|
|
220
222
|
#toggle-menu{
|
|
221
223
|
display: none;
|
|
222
224
|
}
|
|
223
225
|
|
|
226
|
+
#get-brochure-mobile{
|
|
227
|
+
display: none;
|
|
228
|
+
}
|
|
229
|
+
|
|
224
230
|
.nav-menu{
|
|
225
231
|
display: flex;
|
|
226
232
|
flex: 1;
|
|
227
233
|
background: transparent;
|
|
228
234
|
height: 100%;
|
|
229
235
|
justify-content: center;
|
|
230
|
-
|
|
236
|
+
min-width: 100%;
|
|
237
|
+
// padding-inline-start: 25px;
|
|
231
238
|
|
|
232
239
|
a{
|
|
233
240
|
color: white;
|
|
234
241
|
text-transform: uppercase;
|
|
235
242
|
font-family: $font-default;
|
|
236
|
-
font-size:
|
|
243
|
+
font-size: 14px;
|
|
237
244
|
font-weight: 500;
|
|
238
245
|
line-height: 24px;
|
|
239
246
|
letter-spacing: 0.05em;
|
|
@@ -252,11 +259,23 @@
|
|
|
252
259
|
.ant-menu-item:has(.logo){
|
|
253
260
|
// margin: 0 -35px;
|
|
254
261
|
padding: 0;
|
|
262
|
+
order: 1 !important;
|
|
263
|
+
padding-inline-start: 20px;
|
|
255
264
|
}
|
|
265
|
+
|
|
266
|
+
.ant-menu-item:has(.get-brochure) .ant-menu-title-content{
|
|
267
|
+
height: 100%;
|
|
268
|
+
display: flex;
|
|
269
|
+
align-items: center;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
// .ant-menu-item[data-menu-id*=app] {
|
|
273
|
+
// order: 10 !important;
|
|
274
|
+
// }
|
|
256
275
|
}
|
|
257
276
|
|
|
258
277
|
.logo{
|
|
259
|
-
width:
|
|
278
|
+
width: 295px;
|
|
260
279
|
// height: 66px;
|
|
261
280
|
|
|
262
281
|
&.logo_mobile{
|
|
@@ -310,4 +329,46 @@
|
|
|
310
329
|
}
|
|
311
330
|
}
|
|
312
331
|
}
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
@media only screen and (min-width: 899px) {
|
|
335
|
+
#main-header .nav-menu {
|
|
336
|
+
// padding-inline-start: 0;
|
|
337
|
+
|
|
338
|
+
.ant-menu-item:has(.logo) {
|
|
339
|
+
order: 2 !important;
|
|
340
|
+
padding-inline-start: 0;
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
@media only screen and (min-width: 1008px) {
|
|
346
|
+
#main-header .nav-menu .ant-menu-item:has(.logo) {
|
|
347
|
+
order: 3 !important;
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
@media only screen and (min-width: 1300px) {
|
|
352
|
+
#main-header{
|
|
353
|
+
.nav-menu{
|
|
354
|
+
padding-inline-start: 80px;
|
|
355
|
+
|
|
356
|
+
a{
|
|
357
|
+
font-size: 16px;
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
.logo{
|
|
362
|
+
width: 304px;
|
|
363
|
+
// height: 66px;
|
|
364
|
+
|
|
365
|
+
&.logo_mobile{
|
|
366
|
+
display: none;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
&.logo_desktop{
|
|
370
|
+
display: block;
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
}
|
|
313
374
|
}
|
|
@@ -108,15 +108,39 @@ a{
|
|
|
108
108
|
|
|
109
109
|
&>.ant-menu-item:hover,
|
|
110
110
|
&>.ant-menu-item-selected,
|
|
111
|
-
&>.ant-menu-item-active
|
|
111
|
+
&>.ant-menu-item-active,
|
|
112
|
+
&>.ant-menu-submenu-open,
|
|
113
|
+
&>.ant-menu-submenu-selected,
|
|
114
|
+
&>.ant-menu-submenu-active{
|
|
112
115
|
|
|
113
116
|
&::after{
|
|
114
|
-
display: none;
|
|
117
|
+
display: none !important;
|
|
115
118
|
}
|
|
116
119
|
}
|
|
117
120
|
}
|
|
118
121
|
|
|
119
122
|
.ant-menu-item-selected{
|
|
120
|
-
background-color: transparent;
|
|
123
|
+
background-color: transparent !important;
|
|
124
|
+
color: unset !important;
|
|
125
|
+
text-transform: uppercase;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// .ant-menu-submenu-selected>.ant-menu-submenu-title{
|
|
129
|
+
// color: #FFFFFF !important;
|
|
130
|
+
// }
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.ant-float-btn-default{
|
|
134
|
+
background-color: #F2F2F280;
|
|
135
|
+
width: 42px;
|
|
136
|
+
height: 42px;
|
|
137
|
+
border-radius: 50px;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.ant-float-btn .ant-float-btn-body .ant-float-btn-content .ant-float-btn-icon{
|
|
141
|
+
width: 32px;
|
|
142
|
+
|
|
143
|
+
svg{
|
|
144
|
+
color: $primary-color;
|
|
121
145
|
}
|
|
122
146
|
}
|
|
@@ -3,6 +3,17 @@ import axios from "axios";
|
|
|
3
3
|
class ContactUsApi
|
|
4
4
|
{
|
|
5
5
|
|
|
6
|
+
contactInquiry(formValues){
|
|
7
|
+
const apiUrl = "/api/v1/inquiries";
|
|
8
|
+
|
|
9
|
+
return axios.post(apiUrl, {inquiry: formValues})
|
|
10
|
+
.then(response => {
|
|
11
|
+
const ok = response.status == 200;
|
|
12
|
+
return Promise.resolve(ok);
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
getStates(): Promise<any[]> {
|
|
7
18
|
const apiUrl = "/api/v1/states";
|
|
8
19
|
|
|
@@ -2,4 +2,19 @@
|
|
|
2
2
|
import "./react"
|
|
3
3
|
//= require jquery3
|
|
4
4
|
//= require popper
|
|
5
|
-
//= require bootstrap
|
|
5
|
+
//= require bootstrap
|
|
6
|
+
|
|
7
|
+
import '@ant-design/v5-patch-for-react-19';
|
|
8
|
+
|
|
9
|
+
import { unstableSetRender } from 'antd';
|
|
10
|
+
import { createRoot } from 'react-dom/client';
|
|
11
|
+
|
|
12
|
+
unstableSetRender((node, container) => {
|
|
13
|
+
container._reactRoot ||= createRoot(container);
|
|
14
|
+
const root = container._reactRoot;
|
|
15
|
+
root.render(node);
|
|
16
|
+
return async () => {
|
|
17
|
+
await new Promise((resolve) => setTimeout(resolve, 0));
|
|
18
|
+
root.unmount();
|
|
19
|
+
};
|
|
20
|
+
});
|
|
@@ -9,39 +9,6 @@ import BrochueApi from "../../api-services/brochure-api.service";
|
|
|
9
9
|
type MenuItem = Required<MenuProps>['items'][number];
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
const items: MenuItem[] = [
|
|
13
|
-
{
|
|
14
|
-
key: 'app',
|
|
15
|
-
label: <Link to="/app"> Home </Link>
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
key: 'about-us',
|
|
19
|
-
label: <Link to="/app/about-us"> About Us </Link>
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
key: 'countries',
|
|
23
|
-
label: <Link to="/app/countries"> Countries </Link>
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
key: 'blog',
|
|
27
|
-
label: <Link to="/app/blog"> Blog </Link>
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
key: 'logo',
|
|
31
|
-
label: <img src="/iceholidays-assets/images/logo.png" className="logo logo_desktop"/>,
|
|
32
|
-
disabled: true
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
key: 'contact-agents',
|
|
36
|
-
label: <Link to="/app/contact-agents"> Contact Agents </Link>
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
key: 'contact-us',
|
|
40
|
-
label: <Link to="/app/contact-us"> Contact Us </Link>
|
|
41
|
-
},
|
|
42
|
-
]
|
|
43
|
-
|
|
44
|
-
|
|
45
12
|
function withLocation(Component) {
|
|
46
13
|
return props => <Component {...props} location={useLocation()} />;
|
|
47
14
|
}
|
|
@@ -49,6 +16,45 @@ function withLocation(Component) {
|
|
|
49
16
|
class MainHeader extends React.Component <{location}> {
|
|
50
17
|
brochureApi = new BrochueApi;
|
|
51
18
|
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
items: MenuItem[] = [
|
|
22
|
+
{
|
|
23
|
+
key: 'app',
|
|
24
|
+
label: <Link to="/app"> Home </Link>
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
key: 'about-us',
|
|
28
|
+
label: <Link to="/app/about-us"> About Us </Link>
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
key: 'countries',
|
|
32
|
+
label: <Link to="/app/countries"> Countries </Link>
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
key: 'blog',
|
|
36
|
+
label: <Link to="/app/blog"> Blog </Link>
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
key: 'logo',
|
|
40
|
+
label: <img src="/iceholidays-assets/images/logo.png" className="logo logo_desktop"/>,
|
|
41
|
+
disabled: true
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
key: 'contact-agents',
|
|
45
|
+
label: <Link to="/app/contact-agents"> Contact Agents </Link>
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
key: 'contact-us',
|
|
49
|
+
label: <Link to="/app/contact-us"> Contact Us </Link>
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
key: 'brochure',
|
|
53
|
+
label: <Button onClick={()=>this.downloadBrochure()} className="get-brochure" id="get-brochure-menu" type="primary"><Icon path={mdiFileDownload} size="18px" /> get brochure</Button>,
|
|
54
|
+
disabled: true
|
|
55
|
+
},
|
|
56
|
+
]
|
|
57
|
+
|
|
52
58
|
state = {
|
|
53
59
|
open: false,
|
|
54
60
|
current: "",
|
|
@@ -64,7 +70,7 @@ class MainHeader extends React.Component <{location}> {
|
|
|
64
70
|
}
|
|
65
71
|
|
|
66
72
|
|
|
67
|
-
downloadBrochure
|
|
73
|
+
downloadBrochure() {
|
|
68
74
|
this.brochureApi.getBrochure()
|
|
69
75
|
.then((brochureUrl:any) => {
|
|
70
76
|
// const blob = brochureUrl.blob();
|
|
@@ -107,12 +113,12 @@ class MainHeader extends React.Component <{location}> {
|
|
|
107
113
|
const {open, current } = this.state;
|
|
108
114
|
return (
|
|
109
115
|
<div id="main-header">
|
|
110
|
-
<Menu mode="horizontal" items={items} onClick={this.onClick} selectedKeys={[current]} className="nav-menu"/>
|
|
116
|
+
<Menu mode="horizontal" items={this.items} onClick={this.onClick} selectedKeys={[current]} className="nav-menu"/>
|
|
111
117
|
|
|
112
118
|
<a href="/app"><img src="/iceholidays-assets/images/logo_mobile.png" className="logo logo_mobile"/></a>
|
|
113
119
|
|
|
114
120
|
<div id="nav-buttons">
|
|
115
|
-
|
|
121
|
+
<Button onClick={()=>this.downloadBrochure()} className="get-brochure" id="get-brochure-mobile" type="primary"><Icon path={mdiFileDownload} size="18px" /> get brochure</Button>
|
|
116
122
|
|
|
117
123
|
<Button id="toggle-menu" type="primary" onClick={()=>this.showDrawer()}>
|
|
118
124
|
<Icon path={mdiMenu} size="25px" />
|
|
@@ -120,7 +126,7 @@ class MainHeader extends React.Component <{location}> {
|
|
|
120
126
|
</div>
|
|
121
127
|
|
|
122
128
|
<Drawer title={null} onClose={()=>this.onClose()} open={open} id="nav-drawer">
|
|
123
|
-
<Menu items={items} onClick={this.onClick} selectedKeys={[current]} className="nav-menu_mobile"/>
|
|
129
|
+
<Menu items={this.items} onClick={this.onClick} selectedKeys={[current]} className="nav-menu_mobile"/>
|
|
124
130
|
</Drawer>
|
|
125
131
|
</div>
|
|
126
132
|
)
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { Outlet } from "react-router-dom";
|
|
3
|
-
import { Layout } from 'antd';
|
|
3
|
+
import { FloatButton, Layout } from 'antd';
|
|
4
4
|
import MainHeader from "./MainHeader";
|
|
5
5
|
import MainFooter from "./MainFooter";
|
|
6
|
+
import { mdiArrowUpBold } from "@mdi/js";
|
|
7
|
+
import Icon from "@mdi/react";
|
|
6
8
|
|
|
7
9
|
const { Content } = Layout;
|
|
8
10
|
|
|
@@ -12,6 +14,7 @@ const MainLayout = () => {
|
|
|
12
14
|
<MainHeader/>
|
|
13
15
|
<Content>
|
|
14
16
|
<Outlet/>
|
|
17
|
+
<FloatButton.BackTop icon={<Icon path={mdiArrowUpBold} size="32px" />}/>
|
|
15
18
|
</Content>
|
|
16
19
|
{/* <MainFooter/> */}
|
|
17
20
|
</Layout>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import Headline from "../components/shared/Headline";
|
|
3
|
-
import { Button, Col, Flex, Form, Input, notification, Row, Select, Space } from "antd";
|
|
4
|
-
import { mdiFacebook, mdiInstagram,
|
|
3
|
+
import { Button, Col, Flex, Form, FormInstance, Input, notification, Row, Select, Space } from "antd";
|
|
4
|
+
import { mdiFacebook, mdiInstagram, mdiWhatsapp } from "@mdi/js";
|
|
5
5
|
import Icon from "@mdi/react";
|
|
6
6
|
import ContactUsApi from "../../api-services/contact-us-api.service";
|
|
7
7
|
const { TextArea } = Input;
|
|
@@ -27,6 +27,7 @@ const validateMessages = {
|
|
|
27
27
|
|
|
28
28
|
export default class ContactUsPage extends React.Component {
|
|
29
29
|
api = new ContactUsApi;
|
|
30
|
+
contactForm = React.createRef<FormInstance>();
|
|
30
31
|
|
|
31
32
|
state = {
|
|
32
33
|
states: []
|
|
@@ -44,7 +45,16 @@ export default class ContactUsPage extends React.Component {
|
|
|
44
45
|
}
|
|
45
46
|
|
|
46
47
|
submitForm(formValues) {
|
|
47
|
-
|
|
48
|
+
this.api.contactInquiry(formValues)
|
|
49
|
+
.then(success => {
|
|
50
|
+
if(success){
|
|
51
|
+
notification['success']({message: "Inquiry sent."});
|
|
52
|
+
this.contactForm.current?.resetFields();
|
|
53
|
+
}
|
|
54
|
+
})
|
|
55
|
+
.catch(error => {
|
|
56
|
+
notification.error({ message: 'An error occured while sending inquiry.'});
|
|
57
|
+
});
|
|
48
58
|
}
|
|
49
59
|
|
|
50
60
|
render(){
|
|
@@ -61,30 +71,31 @@ export default class ContactUsPage extends React.Component {
|
|
|
61
71
|
<span>Send us your enquiry</span>
|
|
62
72
|
</div>
|
|
63
73
|
<Form
|
|
74
|
+
ref={this.contactForm}
|
|
64
75
|
autoComplete="off"
|
|
65
76
|
layout="vertical"
|
|
66
77
|
variant="filled"
|
|
67
78
|
validateMessages={validateMessages}
|
|
68
79
|
onFinish={(formValues)=>this.submitForm(formValues)}
|
|
69
80
|
>
|
|
70
|
-
<Form.Item label="Enter Name" name="name">
|
|
81
|
+
<Form.Item label="Enter Name" name="name" required>
|
|
71
82
|
<Input placeholder="Enter Here" />
|
|
72
83
|
</Form.Item>
|
|
73
84
|
|
|
74
85
|
<Row gutter={20}>
|
|
75
86
|
<Col span={12}>
|
|
76
|
-
<Form.Item label="Enter Email" name="email" rules={[{ type: 'email' }]}>
|
|
87
|
+
<Form.Item label="Enter Email" name="email" rules={[{ type: 'email' }]} required>
|
|
77
88
|
<Input placeholder="Enter Here" />
|
|
78
89
|
</Form.Item>
|
|
79
90
|
</Col>
|
|
80
91
|
<Col span={12}>
|
|
81
|
-
<Form.Item label="Enter Phone Number" name="
|
|
92
|
+
<Form.Item label="Enter Phone Number" name="phone" required>
|
|
82
93
|
<Input placeholder="Enter Here" />
|
|
83
94
|
</Form.Item>
|
|
84
95
|
</Col>
|
|
85
96
|
</Row>
|
|
86
97
|
|
|
87
|
-
<Form.Item label="Select State" name="state">
|
|
98
|
+
<Form.Item label="Select State" name="state" required>
|
|
88
99
|
<Select
|
|
89
100
|
placeholder="Please Select"
|
|
90
101
|
options={this.state?.states}
|
|
@@ -99,7 +110,7 @@ export default class ContactUsPage extends React.Component {
|
|
|
99
110
|
<Input placeholder="Enter Here" />
|
|
100
111
|
</Form.Item>
|
|
101
112
|
|
|
102
|
-
<Form.Item label="Write your message" name="message">
|
|
113
|
+
<Form.Item label="Write your message" name="message" required>
|
|
103
114
|
<TextArea rows={4} placeholder="Write Here"/>
|
|
104
115
|
</Form.Item>
|
|
105
116
|
|
|
@@ -112,7 +112,7 @@ class ShowPage extends React.Component <{params;}> {
|
|
|
112
112
|
})
|
|
113
113
|
.finally(()=>this.setState({loading: false}))
|
|
114
114
|
.catch(error => {
|
|
115
|
-
notification.error({ message: 'An error occured while loading
|
|
115
|
+
notification.error({ message: 'An error occured while loading itinerary.'});
|
|
116
116
|
});
|
|
117
117
|
|
|
118
118
|
this.getAgents();
|
|
@@ -339,11 +339,27 @@ a {
|
|
|
339
339
|
color: rgba(0, 0, 0, 0.5019607843);
|
|
340
340
|
}
|
|
341
341
|
|
|
342
|
-
.ant-menu-light.ant-menu-horizontal > .ant-menu-item:hover::after, .ant-menu-light.ant-menu-horizontal > .ant-menu-item-selected::after, .ant-menu-light.ant-menu-horizontal > .ant-menu-item-active::after {
|
|
343
|
-
display: none;
|
|
342
|
+
.ant-menu-light.ant-menu-horizontal > .ant-menu-item:hover::after, .ant-menu-light.ant-menu-horizontal > .ant-menu-item-selected::after, .ant-menu-light.ant-menu-horizontal > .ant-menu-item-active::after, .ant-menu-light.ant-menu-horizontal > .ant-menu-submenu-open::after, .ant-menu-light.ant-menu-horizontal > .ant-menu-submenu-selected::after, .ant-menu-light.ant-menu-horizontal > .ant-menu-submenu-active::after {
|
|
343
|
+
display: none !important;
|
|
344
344
|
}
|
|
345
345
|
.ant-menu-light .ant-menu-item-selected {
|
|
346
|
-
background-color: transparent;
|
|
346
|
+
background-color: transparent !important;
|
|
347
|
+
color: unset !important;
|
|
348
|
+
text-transform: uppercase;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
.ant-float-btn-default {
|
|
352
|
+
background-color: rgba(242, 242, 242, 0.5019607843);
|
|
353
|
+
width: 42px;
|
|
354
|
+
height: 42px;
|
|
355
|
+
border-radius: 50px;
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
.ant-float-btn .ant-float-btn-body .ant-float-btn-content .ant-float-btn-icon {
|
|
359
|
+
width: 32px;
|
|
360
|
+
}
|
|
361
|
+
.ant-float-btn .ant-float-btn-body .ant-float-btn-content .ant-float-btn-icon svg {
|
|
362
|
+
color: #DCB062;
|
|
347
363
|
}
|
|
348
364
|
|
|
349
365
|
.slick-track {
|
|
@@ -356,7 +372,6 @@ a {
|
|
|
356
372
|
height: 50px;
|
|
357
373
|
width: 100%;
|
|
358
374
|
background: linear-gradient(241.37deg, #D1AC6E -108.33%, #D1AC6E -14.72%, #F9E298 -2.73%, #B68B31 108.18%);
|
|
359
|
-
padding-inline-end: 25px;
|
|
360
375
|
display: inline-flex;
|
|
361
376
|
justify-content: space-between;
|
|
362
377
|
align-items: center;
|
|
@@ -386,7 +401,8 @@ a {
|
|
|
386
401
|
#main-header .logo.logo_mobile {
|
|
387
402
|
padding-top: 25px;
|
|
388
403
|
}
|
|
389
|
-
|
|
404
|
+
|
|
405
|
+
.get-brochure {
|
|
390
406
|
width: 152px;
|
|
391
407
|
height: var(--button-height);
|
|
392
408
|
padding: 7px 8px 7px 8px;
|
|
@@ -508,7 +524,8 @@ a {
|
|
|
508
524
|
padding: 16px 0;
|
|
509
525
|
height: 56px;
|
|
510
526
|
}
|
|
511
|
-
#nav-drawer.ant-drawer-content .ant-drawer-body .ant-menu-light .ant-menu-item:has(.logo_desktop)
|
|
527
|
+
#nav-drawer.ant-drawer-content .ant-drawer-body .ant-menu-light .ant-menu-item:has(.logo_desktop),
|
|
528
|
+
#nav-drawer.ant-drawer-content .ant-drawer-body .ant-menu-light .ant-menu-item:has(.get-brochure) {
|
|
512
529
|
display: none;
|
|
513
530
|
}
|
|
514
531
|
#nav-drawer.ant-drawer-content .ant-drawer-body .nav-menu_mobile a {
|
|
@@ -529,23 +546,26 @@ a {
|
|
|
529
546
|
white-space: nowrap;
|
|
530
547
|
}
|
|
531
548
|
}
|
|
532
|
-
@media only screen and (min-width:
|
|
549
|
+
@media only screen and (min-width: 769px) {
|
|
533
550
|
#main-header #toggle-menu {
|
|
534
551
|
display: none;
|
|
535
552
|
}
|
|
553
|
+
#main-header #get-brochure-mobile {
|
|
554
|
+
display: none;
|
|
555
|
+
}
|
|
536
556
|
#main-header .nav-menu {
|
|
537
557
|
display: flex;
|
|
538
558
|
flex: 1;
|
|
539
559
|
background: transparent;
|
|
540
560
|
height: 100%;
|
|
541
561
|
justify-content: center;
|
|
542
|
-
|
|
562
|
+
min-width: 100%;
|
|
543
563
|
}
|
|
544
564
|
#main-header .nav-menu a {
|
|
545
565
|
color: white;
|
|
546
566
|
text-transform: uppercase;
|
|
547
567
|
font-family: Poppins, san-serif;
|
|
548
|
-
font-size:
|
|
568
|
+
font-size: 14px;
|
|
549
569
|
font-weight: 500;
|
|
550
570
|
line-height: 24px;
|
|
551
571
|
letter-spacing: 0.05em;
|
|
@@ -559,9 +579,16 @@ a {
|
|
|
559
579
|
}
|
|
560
580
|
#main-header .nav-menu .ant-menu-item:has(.logo) {
|
|
561
581
|
padding: 0;
|
|
582
|
+
order: 1 !important;
|
|
583
|
+
padding-inline-start: 20px;
|
|
584
|
+
}
|
|
585
|
+
#main-header .nav-menu .ant-menu-item:has(.get-brochure) .ant-menu-title-content {
|
|
586
|
+
height: 100%;
|
|
587
|
+
display: flex;
|
|
588
|
+
align-items: center;
|
|
562
589
|
}
|
|
563
590
|
#main-header .logo {
|
|
564
|
-
width:
|
|
591
|
+
width: 295px;
|
|
565
592
|
}
|
|
566
593
|
#main-header .logo.logo_mobile {
|
|
567
594
|
display: none;
|
|
@@ -600,6 +627,34 @@ a {
|
|
|
600
627
|
align-items: center;
|
|
601
628
|
}
|
|
602
629
|
}
|
|
630
|
+
@media only screen and (min-width: 899px) {
|
|
631
|
+
#main-header .nav-menu .ant-menu-item:has(.logo) {
|
|
632
|
+
order: 2 !important;
|
|
633
|
+
padding-inline-start: 0;
|
|
634
|
+
}
|
|
635
|
+
}
|
|
636
|
+
@media only screen and (min-width: 1008px) {
|
|
637
|
+
#main-header .nav-menu .ant-menu-item:has(.logo) {
|
|
638
|
+
order: 3 !important;
|
|
639
|
+
}
|
|
640
|
+
}
|
|
641
|
+
@media only screen and (min-width: 1300px) {
|
|
642
|
+
#main-header .nav-menu {
|
|
643
|
+
padding-inline-start: 80px;
|
|
644
|
+
}
|
|
645
|
+
#main-header .nav-menu a {
|
|
646
|
+
font-size: 16px;
|
|
647
|
+
}
|
|
648
|
+
#main-header .logo {
|
|
649
|
+
width: 304px;
|
|
650
|
+
}
|
|
651
|
+
#main-header .logo.logo_mobile {
|
|
652
|
+
display: none;
|
|
653
|
+
}
|
|
654
|
+
#main-header .logo.logo_desktop {
|
|
655
|
+
display: block;
|
|
656
|
+
}
|
|
657
|
+
}
|
|
603
658
|
#headline {
|
|
604
659
|
--side-padding: 20px;
|
|
605
660
|
}
|