Pavle Golubovic pirms 3 gadiem
vecāks
revīzija
96ff634072

+ 1
- 0
frontend/.env Parādīt failu

@@ -6,3 +6,4 @@ REACT_APP_CLIENT_TEMPLATE_ID = template_bd6fjli
REACT_APP_USER_ID = 27spvSZ2Lsf2j8RKw
REACT_APP_API_URL = "https://websitediligentapi.azurewebsites.net"
//http://localhost:1337
MAILCHIMP_FORM_URL = http://eepurl.com/iaRrv1

+ 215
- 0
frontend/package-lock.json Parādīt failu

@@ -11,6 +11,7 @@
"@faceless-ui/slider": "^1.1.14",
"@faceless-ui/window-info": "^2.1.1",
"@headlessui/react": "^1.4.3",
"@react-google-maps/api": "^2.13.1",
"@react-hook/size": "^2.1.2",
"@tailwindcss/forms": "^0.4.0",
"@testing-library/jest-dom": "^5.16.1",
@@ -26,6 +27,7 @@
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-dropzone": "^12.0.5",
"react-mailchimp-subscribe": "^2.1.3",
"react-markdown": "^8.0.0",
"react-router-dom": "^6.2.1",
"react-scripts": "5.0.0",
@@ -2008,6 +2010,23 @@
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
}
},
"node_modules/@googlemaps/js-api-loader": {
"version": "1.14.3",
"resolved": "https://registry.npmjs.org/@googlemaps/js-api-loader/-/js-api-loader-1.14.3.tgz",
"integrity": "sha512-6iIb+qpGgQpgIHmIFO44WhE1rDUxPVHuezNFL30wRJnkvhwFm94tD291UvNg9L05hLDSoL16jd0lbqqmdy4C5g==",
"dependencies": {
"fast-deep-equal": "^3.1.3"
}
},
"node_modules/@googlemaps/markerclusterer": {
"version": "2.0.10",
"resolved": "https://registry.npmjs.org/@googlemaps/markerclusterer/-/markerclusterer-2.0.10.tgz",
"integrity": "sha512-3UdPE2XH+DkFRTWIxEOcKdTqb3O9dMMxBn5jlhSae//uBGPqv9iHv9dz4l6/0Mwt7YcYmkwSpQZMc61WvZI/Qg==",
"dependencies": {
"fast-deep-equal": "^3.1.3",
"supercluster": "^7.1.3"
}
},
"node_modules/@headlessui/react": {
"version": "1.4.3",
"resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.4.3.tgz",
@@ -2875,6 +2894,33 @@
"node": ">= 8"
}
},
"node_modules/@react-google-maps/api": {
"version": "2.13.1",
"resolved": "https://registry.npmjs.org/@react-google-maps/api/-/api-2.13.1.tgz",
"integrity": "sha512-5P8H3GJpCy9th5u6OUzw36WD5NUAl3hDmcPDaVvowRb9Cn2Zf7b1wLCZ4If+k+gX4o2apsSjD+JtWiRogLOMdQ==",
"dependencies": {
"@googlemaps/js-api-loader": "1.14.3",
"@googlemaps/markerclusterer": "2.0.10",
"@react-google-maps/infobox": "2.11.8",
"@react-google-maps/marker-clusterer": "2.11.8",
"@types/google.maps": "3.49.2",
"invariant": "2.2.4"
},
"peerDependencies": {
"react": "^16.8 || ^17 || ^18",
"react-dom": "^16.8 || ^17 || ^18"
}
},
"node_modules/@react-google-maps/infobox": {
"version": "2.11.8",
"resolved": "https://registry.npmjs.org/@react-google-maps/infobox/-/infobox-2.11.8.tgz",
"integrity": "sha512-15y3dniys1Op5HREyLwiJI2pAdeeHRJT5b4WPrS+vyL5KF6iXK1P3y/9bXtnxHiKe2v6iPreaEhR3VgvfRA50Q=="
},
"node_modules/@react-google-maps/marker-clusterer": {
"version": "2.11.8",
"resolved": "https://registry.npmjs.org/@react-google-maps/marker-clusterer/-/marker-clusterer-2.11.8.tgz",
"integrity": "sha512-OEcdbTXEgPwdpGvVuSrhIhjcZPhlzPz2TvaKCBLraf1PKiDyLOPhlTVRlbIziLiu0xN89pJcill1w9UVIVFF+Q=="
},
"node_modules/@react-hook/latest": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@react-hook/latest/-/latest-1.0.3.tgz",
@@ -3595,6 +3641,11 @@
"@types/range-parser": "*"
}
},
"node_modules/@types/google.maps": {
"version": "3.49.2",
"resolved": "https://registry.npmjs.org/@types/google.maps/-/google.maps-3.49.2.tgz",
"integrity": "sha512-ZO1qWciukqED9qcUNW7OaPXWnTlT+tO3WcYkmudZyQW2BqD7TlMFRrdqSCoqfwKhERCwBA5A/YZt/g5A3BqgLQ=="
},
"node_modules/@types/graceful-fs": {
"version": "4.1.5",
"resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz",
@@ -8862,6 +8913,14 @@
"node": ">= 0.10"
}
},
"node_modules/invariant": {
"version": "2.2.4",
"resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
"integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
"dependencies": {
"loose-envify": "^1.0.0"
}
},
"node_modules/ip": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
@@ -11183,6 +11242,27 @@
"graceful-fs": "^4.1.6"
}
},
"node_modules/jsonp": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/jsonp/-/jsonp-0.2.1.tgz",
"integrity": "sha512-pfog5gdDxPdV4eP7Kg87M8/bHgshlZ5pybl+yKxAnCZ5O7lCIn7Ixydj03wOlnDQesky2BPyA91SQ+5Y/mNwzw==",
"dependencies": {
"debug": "^2.1.3"
}
},
"node_modules/jsonp/node_modules/debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dependencies": {
"ms": "2.0.0"
}
},
"node_modules/jsonp/node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/jsonpointer": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.0.tgz",
@@ -11203,6 +11283,11 @@
"node": ">=4.0"
}
},
"node_modules/kdbush": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/kdbush/-/kdbush-3.0.0.tgz",
"integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew=="
},
"node_modules/kind-of": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
@@ -14404,6 +14489,19 @@
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
},
"node_modules/react-mailchimp-subscribe": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/react-mailchimp-subscribe/-/react-mailchimp-subscribe-2.1.3.tgz",
"integrity": "sha512-ZRuPZMnX/9pHQLnAQavsgB5xIF+gNqjNCCq1vvTs23cn+93W2oOp17qjg3LpDBEt1HJi6IHXMwpKXn0taY8FHw==",
"dependencies": {
"jsonp": "^0.2.1",
"prop-types": "^15.5.10",
"to-querystring": "^1.0.4"
},
"peerDependencies": {
"react": ">=15"
}
},
"node_modules/react-markdown": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-8.0.0.tgz",
@@ -15841,6 +15939,14 @@
"postcss": "^8.2.15"
}
},
"node_modules/supercluster": {
"version": "7.1.5",
"resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.5.tgz",
"integrity": "sha512-EulshI3pGUM66o6ZdH3ReiFcvHpM3vAigyK+vcxdjpJyEbIIrtbmBdY23mGgnI24uXiGFvrGq9Gkum/8U7vJWg==",
"dependencies": {
"kdbush": "^3.0.0"
}
},
"node_modules/supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
@@ -16229,6 +16335,11 @@
"node": ">=4"
}
},
"node_modules/to-querystring": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/to-querystring/-/to-querystring-1.1.1.tgz",
"integrity": "sha512-ZgIacl9TXAoT7sGXUYjQiy0MW7Tf/7CJQLt757hYHfXXc8JBzOVBMx4DckqKUO4hi36J72/m8UcH/GCHK+n97g=="
},
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -19046,6 +19157,23 @@
"integrity": "sha512-gMAgda7beR4CNpBIXjgRVn97ek0LG3PAj9lxmoYdg574IEzLFZAh3eAYtTaS2XLKgb4+IHhsuBzlGmHbeOo2Aw==",
"requires": {}
},
"@googlemaps/js-api-loader": {
"version": "1.14.3",
"resolved": "https://registry.npmjs.org/@googlemaps/js-api-loader/-/js-api-loader-1.14.3.tgz",
"integrity": "sha512-6iIb+qpGgQpgIHmIFO44WhE1rDUxPVHuezNFL30wRJnkvhwFm94tD291UvNg9L05hLDSoL16jd0lbqqmdy4C5g==",
"requires": {
"fast-deep-equal": "^3.1.3"
}
},
"@googlemaps/markerclusterer": {
"version": "2.0.10",
"resolved": "https://registry.npmjs.org/@googlemaps/markerclusterer/-/markerclusterer-2.0.10.tgz",
"integrity": "sha512-3UdPE2XH+DkFRTWIxEOcKdTqb3O9dMMxBn5jlhSae//uBGPqv9iHv9dz4l6/0Mwt7YcYmkwSpQZMc61WvZI/Qg==",
"requires": {
"fast-deep-equal": "^3.1.3",
"supercluster": "^7.1.3"
}
},
"@headlessui/react": {
"version": "1.4.3",
"resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.4.3.tgz",
@@ -19695,6 +19823,29 @@
}
}
},
"@react-google-maps/api": {
"version": "2.13.1",
"resolved": "https://registry.npmjs.org/@react-google-maps/api/-/api-2.13.1.tgz",
"integrity": "sha512-5P8H3GJpCy9th5u6OUzw36WD5NUAl3hDmcPDaVvowRb9Cn2Zf7b1wLCZ4If+k+gX4o2apsSjD+JtWiRogLOMdQ==",
"requires": {
"@googlemaps/js-api-loader": "1.14.3",
"@googlemaps/markerclusterer": "2.0.10",
"@react-google-maps/infobox": "2.11.8",
"@react-google-maps/marker-clusterer": "2.11.8",
"@types/google.maps": "3.49.2",
"invariant": "2.2.4"
}
},
"@react-google-maps/infobox": {
"version": "2.11.8",
"resolved": "https://registry.npmjs.org/@react-google-maps/infobox/-/infobox-2.11.8.tgz",
"integrity": "sha512-15y3dniys1Op5HREyLwiJI2pAdeeHRJT5b4WPrS+vyL5KF6iXK1P3y/9bXtnxHiKe2v6iPreaEhR3VgvfRA50Q=="
},
"@react-google-maps/marker-clusterer": {
"version": "2.11.8",
"resolved": "https://registry.npmjs.org/@react-google-maps/marker-clusterer/-/marker-clusterer-2.11.8.tgz",
"integrity": "sha512-OEcdbTXEgPwdpGvVuSrhIhjcZPhlzPz2TvaKCBLraf1PKiDyLOPhlTVRlbIziLiu0xN89pJcill1w9UVIVFF+Q=="
},
"@react-hook/latest": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@react-hook/latest/-/latest-1.0.3.tgz",
@@ -20209,6 +20360,11 @@
"@types/range-parser": "*"
}
},
"@types/google.maps": {
"version": "3.49.2",
"resolved": "https://registry.npmjs.org/@types/google.maps/-/google.maps-3.49.2.tgz",
"integrity": "sha512-ZO1qWciukqED9qcUNW7OaPXWnTlT+tO3WcYkmudZyQW2BqD7TlMFRrdqSCoqfwKhERCwBA5A/YZt/g5A3BqgLQ=="
},
"@types/graceful-fs": {
"version": "4.1.5",
"resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz",
@@ -24141,6 +24297,14 @@
"integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==",
"dev": true
},
"invariant": {
"version": "2.2.4",
"resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
"integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
"requires": {
"loose-envify": "^1.0.0"
}
},
"ip": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
@@ -25787,6 +25951,29 @@
"universalify": "^2.0.0"
}
},
"jsonp": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/jsonp/-/jsonp-0.2.1.tgz",
"integrity": "sha512-pfog5gdDxPdV4eP7Kg87M8/bHgshlZ5pybl+yKxAnCZ5O7lCIn7Ixydj03wOlnDQesky2BPyA91SQ+5Y/mNwzw==",
"requires": {
"debug": "^2.1.3"
},
"dependencies": {
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"requires": {
"ms": "2.0.0"
}
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
}
}
},
"jsonpointer": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.0.tgz",
@@ -25801,6 +25988,11 @@
"object.assign": "^4.1.2"
}
},
"kdbush": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/kdbush/-/kdbush-3.0.0.tgz",
"integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew=="
},
"kind-of": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
@@ -27936,6 +28128,16 @@
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
},
"react-mailchimp-subscribe": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/react-mailchimp-subscribe/-/react-mailchimp-subscribe-2.1.3.tgz",
"integrity": "sha512-ZRuPZMnX/9pHQLnAQavsgB5xIF+gNqjNCCq1vvTs23cn+93W2oOp17qjg3LpDBEt1HJi6IHXMwpKXn0taY8FHw==",
"requires": {
"jsonp": "^0.2.1",
"prop-types": "^15.5.10",
"to-querystring": "^1.0.4"
}
},
"react-markdown": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-8.0.0.tgz",
@@ -29018,6 +29220,14 @@
"postcss-selector-parser": "^6.0.4"
}
},
"supercluster": {
"version": "7.1.5",
"resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.5.tgz",
"integrity": "sha512-EulshI3pGUM66o6ZdH3ReiFcvHpM3vAigyK+vcxdjpJyEbIIrtbmBdY23mGgnI24uXiGFvrGq9Gkum/8U7vJWg==",
"requires": {
"kdbush": "^3.0.0"
}
},
"supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
@@ -29288,6 +29498,11 @@
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
"integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="
},
"to-querystring": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/to-querystring/-/to-querystring-1.1.1.tgz",
"integrity": "sha512-ZgIacl9TXAoT7sGXUYjQiy0MW7Tf/7CJQLt757hYHfXXc8JBzOVBMx4DckqKUO4hi36J72/m8UcH/GCHK+n97g=="
},
"to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",

+ 2
- 0
frontend/package.json Parādīt failu

@@ -6,6 +6,7 @@
"@faceless-ui/slider": "^1.1.14",
"@faceless-ui/window-info": "^2.1.1",
"@headlessui/react": "^1.4.3",
"@react-google-maps/api": "^2.13.1",
"@react-hook/size": "^2.1.2",
"@tailwindcss/forms": "^0.4.0",
"@testing-library/jest-dom": "^5.16.1",
@@ -21,6 +22,7 @@
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-dropzone": "^12.0.5",
"react-mailchimp-subscribe": "^2.1.3",
"react-markdown": "^8.0.0",
"react-router-dom": "^6.2.1",
"react-scripts": "5.0.0",

+ 2
- 0
frontend/src/App.js Parādīt failu

@@ -18,6 +18,7 @@ import CaseStudyTicketing from './pages/CaseStudyTicketing';
import CaseStudyCentralized from './pages/CaseStudyCentralized';
import CaseStudyResource from './pages/CaseStudyResource';
import CaseStudyStrata from './pages/CaseStudyStrata';
import OpenDay from './pages/OpenDay';


// Navigation Links
@@ -119,6 +120,7 @@ function App() {
<Route exact path="/post" element={<BlogPost />} />
<Route exact path="/process" element={<ProcessPage />} />
<Route exact path="/contact" element={<ContactPage />} />
<Route exact path="/openday" element={<OpenDay />} />
</Routes>
<Footer

+ 34
- 0
frontend/src/assets/openday/food.svg Parādīt failu

@@ -0,0 +1,34 @@
<svg width="144" height="144" viewBox="0 0 144 144" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_571_1407)">
<path d="M50.6117 86.1707H143.074C143.074 74.1756 133.372 64.4443 121.348 64.4443H72.3381C60.343 64.4443 50.6117 74.1756 50.6117 86.1707Z" fill="url(#paint0_linear_571_1407)"/>
<path d="M72.3381 144H121.377C133.372 144 143.103 134.298 143.103 122.274H50.6117C50.6117 134.269 60.343 144 72.3381 144Z" fill="url(#paint1_linear_571_1407)"/>
<path d="M135.989 97.0192H57.697C53.5811 97.0192 50.2589 100.341 50.2589 104.457C50.2589 108.573 53.5811 111.895 57.697 111.895H135.989C140.105 111.895 143.427 108.573 143.427 104.457C143.427 100.341 140.105 97.0192 135.989 97.0192Z" fill="url(#paint2_linear_571_1407)"/>
<path d="M100.885 0H8.33484L0.573303 18.0515H108.559L100.885 0Z" fill="url(#paint3_linear_571_1407)"/>
<path d="M44.7905 116.452H52.4345C47.7599 114.394 44.5553 109.837 44.5553 104.34C44.5553 98.6362 48.2009 93.697 53.3459 91.8742H44.7611V86.0531C44.7611 70.8534 57.109 58.5055 72.3087 58.5055H99.3859L103.031 23.6374H6.01227L18.6836 143.971H55.3745C41.7036 133.152 44.7905 116.452 44.7905 116.452Z" fill="url(#paint4_linear_571_1407)"/>
</g>
<defs>
<linearGradient id="paint0_linear_571_1407" x1="96.8428" y1="64.4443" x2="96.8428" y2="86.1707" gradientUnits="userSpaceOnUse">
<stop stop-color="#9F36EF"/>
<stop offset="1" stop-color="#534B96"/>
</linearGradient>
<linearGradient id="paint1_linear_571_1407" x1="96.8575" y1="122.274" x2="96.8575" y2="144" gradientUnits="userSpaceOnUse">
<stop stop-color="#9F36EF"/>
<stop offset="1" stop-color="#534B96"/>
</linearGradient>
<linearGradient id="paint2_linear_571_1407" x1="96.8428" y1="97.0192" x2="96.8428" y2="111.895" gradientUnits="userSpaceOnUse">
<stop stop-color="#9F36EF"/>
<stop offset="1" stop-color="#534B96"/>
</linearGradient>
<linearGradient id="paint3_linear_571_1407" x1="54.566" y1="0" x2="54.566" y2="18.0515" gradientUnits="userSpaceOnUse">
<stop stop-color="#9F36EF"/>
<stop offset="1" stop-color="#534B96"/>
</linearGradient>
<linearGradient id="paint4_linear_571_1407" x1="54.5219" y1="23.6374" x2="54.5219" y2="143.971" gradientUnits="userSpaceOnUse">
<stop stop-color="#9F36EF"/>
<stop offset="1" stop-color="#534B96"/>
</linearGradient>
<clipPath id="clip0_571_1407">
<rect width="144" height="144" fill="white"/>
</clipPath>
</defs>
</svg>

+ 9
- 0
frontend/src/assets/openday/message.svg Parādīt failu

@@ -0,0 +1,9 @@
<svg width="144" height="144" viewBox="0 0 144 144" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M129.98 47.5875C126.825 40.0574 122.235 33.213 116.466 27.4359C110.714 21.6488 103.881 17.0476 96.3563 13.8938C88.6474 10.6472 80.3646 8.98297 72 9.00001H71.7188C63.2109 9.04219 54.9844 10.7297 47.2359 14.0484C39.7754 17.2347 33.0071 21.844 27.3094 27.6188C21.5962 33.3829 17.0588 40.2033 13.95 47.7C10.7229 55.4957 9.08767 63.8582 9.14063 72.2953C9.18282 82.0547 11.5172 91.7438 15.8766 100.406V121.781C15.8766 125.353 18.7734 128.25 22.3313 128.25H43.6781C52.381 132.642 61.9848 134.952 71.7328 135H72.0281C80.4375 135 88.5797 133.369 96.2578 130.177C103.745 127.06 110.552 122.513 116.297 116.789C122.091 111.038 126.647 104.316 129.839 96.8203C133.144 89.0578 134.831 80.8031 134.873 72.2813C134.902 63.7172 133.242 55.4063 129.98 47.5875ZM43.9313 78.75C40.2188 78.75 37.1953 75.7266 37.1953 72C37.1953 68.2734 40.2188 65.25 43.9313 65.25C47.6438 65.25 50.6672 68.2734 50.6672 72C50.6672 75.7266 47.6578 78.75 43.9313 78.75ZM72 78.75C68.2875 78.75 65.2641 75.7266 65.2641 72C65.2641 68.2734 68.2875 65.25 72 65.25C75.7125 65.25 78.7359 68.2734 78.7359 72C78.7359 75.7266 75.7125 78.75 72 78.75ZM100.069 78.75C96.3563 78.75 93.3328 75.7266 93.3328 72C93.3328 68.2734 96.3563 65.25 100.069 65.25C103.781 65.25 106.805 68.2734 106.805 72C106.805 75.7266 103.781 78.75 100.069 78.75Z" fill="url(#paint0_linear_571_1405)"/>
<defs>
<linearGradient id="paint0_linear_571_1405" x1="72.0066" y1="8.99988" x2="72.0066" y2="135" gradientUnits="userSpaceOnUse">
<stop stop-color="#9F36EF"/>
<stop offset="1" stop-color="#534B96"/>
</linearGradient>
</defs>
</svg>

+ 14
- 0
frontend/src/assets/openday/networking.svg Parādīt failu

@@ -0,0 +1,14 @@
<svg width="144" height="144" viewBox="0 0 144 144" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M81.1749 65.9325C82.8538 57.9505 79.0247 57.6854 79.0247 57.6854C79.0247 57.6854 78.4651 56.5956 76.9335 55.7415C75.9321 55.1524 74.5183 54.6811 72.6627 54.8284C72.0736 54.8578 71.4846 54.9757 70.9544 55.1524C70.2769 55.388 69.6584 55.712 69.0693 56.1244C68.3624 56.5662 67.7145 57.0963 67.1254 57.7149C66.2123 58.6574 65.3876 59.865 65.0342 61.3672C64.7102 62.6631 64.7102 64.0475 65.2109 65.4612C64.5334 65.4023 63.7087 65.7852 64.4745 68.4655C65.0342 70.4389 65.5349 70.9691 65.9472 70.9986C66.389 73.8261 67.9206 77.4784 72.8394 77.8613C77.6699 77.6846 79.1426 74.0912 79.6433 71.3226C80.0556 71.5876 80.7036 71.4404 81.44 68.8779C82.0585 66.7867 81.6756 66.1092 81.1749 65.9325Z" fill="url(#paint0_linear_571_1383)"/>
<path d="M130.893 64.1064C125.091 64.1064 120.142 67.9059 118.434 73.1487L99.9665 71.3225C99.9075 62.5158 95.6662 54.7106 89.098 49.7918L101.881 28.2904C103.177 28.7323 104.561 28.9679 106.005 28.9679C113.221 28.9679 119.082 23.1066 119.082 15.8904C119.082 8.67416 113.221 2.78339 106.005 2.78339C98.7883 2.78339 92.927 8.64471 92.927 15.8609C92.927 19.631 94.5175 23.0182 97.08 25.404L84.297 46.9053C80.8509 45.3148 77.0219 44.4312 72.9867 44.4312C66.2712 44.4312 60.1154 46.9053 55.4027 50.9699L45.035 41.1618C46.2131 39.1884 46.8906 36.891 46.8906 34.4168C46.8906 27.2006 41.0293 21.3393 33.8131 21.3393C26.5969 21.3393 20.7355 27.2006 20.7355 34.4168C20.7355 41.633 26.5969 47.4944 33.8131 47.4944C36.5523 47.4944 39.0853 46.6697 41.1765 45.2264L51.5443 55.0346C48.0687 59.5705 45.9775 65.2551 45.9775 71.4404C45.9775 73.4432 46.2131 75.4166 46.6255 77.3017L24.2994 84.7535C22.002 80.9245 17.849 78.3915 13.0775 78.3915C5.86132 78.3915 0 84.2528 0 91.469C0 98.6852 5.86132 104.547 13.0775 104.547C20.2937 104.547 26.155 98.6852 26.155 91.469C26.155 90.9977 26.1256 90.5265 26.0667 90.0847L48.3927 82.6328C52.6341 91.9697 62.0593 98.479 72.9867 98.479C74.106 98.479 75.1957 98.3907 76.2561 98.2728L80.3796 116.299C75.9615 118.39 72.8983 122.896 72.8983 128.139C72.8983 135.355 78.7597 141.217 85.9759 141.217C93.1921 141.217 99.0534 135.355 99.0534 128.139C99.0534 120.923 93.1921 115.062 85.9759 115.062C85.9464 115.062 85.8875 115.062 85.8581 115.062L81.7345 97.0358C90.6885 93.9726 97.5512 86.344 99.4657 76.9188L117.933 78.7449C118.699 85.2542 124.207 90.2908 130.922 90.2908C138.139 90.2908 144 84.4295 144 77.2133C144 69.9971 138.139 64.1064 130.893 64.1064ZM90.07 85.1364C89.8638 83.3692 89.1274 81.3958 86.8889 80.8362C82.6181 79.7464 79.1426 77.3017 79.1426 77.3017L76.4328 85.8728L75.9321 87.4927V87.4633L75.4903 88.8181L74.047 84.7535C77.6699 79.7169 73.0751 79.8936 73.0751 79.8936C73.0751 79.8936 68.5097 79.6874 72.1031 84.7535L70.6598 88.8476L70.218 87.4633L67.0076 77.2722C67.0076 77.2722 63.532 79.7169 59.2612 80.8067C57.0227 81.3663 56.2864 83.3692 56.0802 85.107C53.0759 81.3663 51.2497 76.6242 51.2497 71.4404C51.2497 59.3937 61.0284 49.6445 73.0456 49.6445C85.0922 49.6445 94.8415 59.4232 94.8415 71.4404C94.8709 76.6242 93.0742 81.3958 90.07 85.1364Z" fill="url(#paint1_linear_571_1383)"/>
<defs>
<linearGradient id="paint0_linear_571_1383" x1="72.9636" y1="54.8012" x2="72.9636" y2="77.8613" gradientUnits="userSpaceOnUse">
<stop stop-color="#9F36EF"/>
<stop offset="1" stop-color="#534B96"/>
</linearGradient>
<linearGradient id="paint1_linear_571_1383" x1="72" y1="2.78339" x2="72" y2="141.217" gradientUnits="userSpaceOnUse">
<stop stop-color="#9F36EF"/>
<stop offset="1" stop-color="#534B96"/>
</linearGradient>
</defs>
</svg>

+ 9
- 0
frontend/src/assets/openday/prize.svg Parādīt failu

@@ -0,0 +1,9 @@
<svg width="144" height="144" viewBox="0 0 144 144" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M120.856 16.1379H113.586V11.8477V7.6289C113.586 3.51869 110.66 0 106.55 0H37.8627C33.7525 0 30.4138 3.51869 30.4138 7.6289V11.8477V16.1379H22.9792C19.7733 16.1379 13.6552 17.8585 13.6552 25.2993V37.5225C13.6552 50.7668 22.7998 61.9355 35.1391 65.1991C40.4237 75.821 49.7141 83.8974 60.8741 87.2106C59.0499 88.0324 57.7831 89.843 57.7831 91.9527C57.7831 93.078 58.1555 94.3448 58.77 94.9655H58.567C55.7628 94.9655 53.4693 97.4483 53.3086 99.931H46.5139C44.6921 99.931 42.9797 100.627 41.6905 101.923C40.4013 103.219 39.6968 104.927 39.7061 106.748L39.8204 129.103H36.6722C32.6446 129.103 29.1724 132.369 29.1724 136.397V136.707C29.1724 140.735 32.6446 144 36.6722 144H107.12C111.148 144 114.207 140.735 114.207 136.707V136.397C114.207 132.369 111.149 129.103 107.12 129.103H104.592L104.706 106.74C104.715 104.918 104.011 103.219 102.722 101.923C101.433 100.627 99.72 99.931 97.8983 99.931H91.1048C90.9441 97.4483 88.6506 94.9655 85.8464 94.9655H85.6434C86.2579 94.3448 86.6228 93.0786 86.6228 91.9527C86.6228 89.8423 85.3492 88.0287 83.525 87.2069C94.685 83.8943 103.782 75.8197 109.067 65.1972C121.407 61.9337 130.345 50.7668 130.345 37.5225V25.727C130.345 17.9485 124.262 16.1379 120.856 16.1379ZM24.8276 40.2182V27.3103H30.4138V44.8343C30.4138 48.803 30.87 52.6475 31.8085 56.3077C27.5177 52.2577 24.8276 46.543 24.8276 40.2182ZM84.9842 55.9154L72.2067 46.6324L59.4298 55.9154L64.3103 40.9165L51.5334 31.6552H67.3268L72.2073 16.6351L77.0872 31.6552H92.8806L80.1037 40.9165L84.9842 55.9154ZM119.172 40.2182C119.172 46.5437 116.482 52.259 112.19 56.309C113.129 52.6481 113.586 48.8036 113.586 44.8343V27.3103H119.172V40.2182Z" fill="url(#paint0_linear_571_1431)"/>
<defs>
<linearGradient id="paint0_linear_571_1431" x1="72" y1="0" x2="72" y2="144" gradientUnits="userSpaceOnUse">
<stop stop-color="#9F36EF"/>
<stop offset="1" stop-color="#534B96"/>
</linearGradient>
</defs>
</svg>

+ 9
- 0
frontend/src/assets/openday/videogame.svg Parādīt failu

@@ -0,0 +1,9 @@
<svg width="201" height="144" viewBox="0 0 201 144" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M185.647 106.662L173.124 43.8376C170.371 29.2178 157.774 18.1535 142.589 18.0114V18H58.7112C43.3925 17.9943 30.6303 29.124 27.8601 43.8433L15.3573 106.662C15.1236 107.771 14.9868 108.908 15.001 110.087C14.9868 118.875 22.0148 126 30.6873 126C36.279 126 41.1838 123.047 43.9711 118.591L64.605 92.9008C68.0033 96.1188 72.5099 97.9142 77.1962 97.9172C87.3934 97.9115 95.6612 89.5358 95.6612 79.1848L105.636 79.182C105.636 89.5244 113.913 97.9115 124.11 97.9115C128.71 97.9112 133.142 96.182 136.521 93.0685L157.027 118.591C159.811 123.036 164.722 126 170.299 126C178.972 126 186.009 118.875 186 110.081C186.002 108.933 185.884 107.787 185.647 106.662M68.9255 41.2655C70.9291 39.2305 73.2176 39.8245 74.0242 42.5871L74.0128 51.4715C73.2176 54.2368 70.9291 54.8337 68.9312 52.8016L66.8821 50.7268C65.9183 49.7371 65.3791 48.4118 65.3791 47.0321C65.3791 45.6525 65.9183 44.3271 66.8821 43.3374L68.9255 41.2655M54.3422 31.5256L63.0973 31.5171C65.8191 32.3185 66.4033 34.6491 64.3941 36.6812L62.3649 38.7502C61.889 39.2335 61.3212 39.6174 60.6949 39.8794C60.0686 40.1415 59.3961 40.2764 58.7169 40.2764C58.0377 40.2764 57.3652 40.1415 56.7389 39.8794C56.1125 39.6174 55.5448 39.2335 55.0689 38.7502L53.0226 36.6783C51.0162 34.6462 51.6005 32.3185 54.3422 31.5256M48.5083 52.7931C46.499 54.8337 44.2019 54.2368 43.4068 51.4715L43.4182 42.5871C44.2019 39.8217 46.499 39.2277 48.5026 41.2626L50.5431 43.3345C51.5083 44.3236 52.0484 45.6492 52.0484 47.0293C52.0484 48.4093 51.5083 49.735 50.5431 50.724L48.5083 52.7931M63.0973 62.5386L54.3308 62.5472C51.6005 61.7343 51.0162 59.418 53.0255 57.3831L55.0718 55.3112C55.5476 54.8285 56.1151 54.445 56.741 54.1832C57.367 53.9214 58.0389 53.7864 58.7177 53.7862C59.3965 53.7859 60.0686 53.9204 60.6947 54.1817C61.3209 54.443 61.8886 54.826 62.3649 55.3083L64.4026 57.3831C66.4033 59.418 65.8134 61.7343 63.0973 62.5386ZM77.1819 91.7214C70.3534 91.727 64.8045 86.1139 64.8045 79.1792C64.8045 72.2501 70.3534 66.6284 77.1962 66.6284C84.0219 66.6369 89.5623 72.2501 89.5623 79.1763C89.5708 86.1167 84.0219 91.7327 77.1819 91.7214ZM134.931 36.5675C137.77 36.5732 140.075 38.9122 140.075 41.7941C140.081 44.6902 137.775 47.035 134.92 47.0207C132.07 47.0293 129.764 44.6902 129.764 41.7998C129.767 38.9122 132.07 36.5732 134.931 36.5675M124.11 91.7271C117.281 91.7271 111.741 86.1082 111.735 79.1792C111.741 72.2501 117.278 66.6284 124.11 66.6284C130.953 66.6341 136.496 72.2501 136.49 79.1792C136.49 86.1082 130.955 91.7214 124.11 91.7271ZM135.404 62.7148C132.554 62.7148 130.246 60.3673 130.246 57.4825C130.243 54.5921 132.554 52.2502 135.404 52.2502C138.254 52.2502 140.557 54.5921 140.566 57.4825C140.566 60.3701 138.249 62.7148 135.404 62.7148ZM149.782 31.3465C152.63 31.3437 154.938 33.6827 154.944 36.5732C154.938 39.4551 152.63 41.7998 149.782 41.7998C146.932 41.7998 144.627 39.4551 144.627 36.5732C144.621 33.6799 146.921 31.3352 149.782 31.3465ZM150.261 57.4854C147.417 57.4882 145.108 55.1492 145.117 52.2616C145.108 49.3712 147.417 47.0264 150.267 47.0349C153.111 47.0293 155.425 49.3655 155.425 52.2531C155.422 55.1463 153.111 57.4882 150.261 57.4854" fill="url(#paint0_linear_571_1403)"/>
<defs>
<linearGradient id="paint0_linear_571_1403" x1="100.5" y1="18" x2="100.5" y2="126" gradientUnits="userSpaceOnUse">
<stop stop-color="#9F36EF"/>
<stop offset="1" stop-color="#534B96"/>
</linearGradient>
</defs>
</svg>

+ 1
- 1
frontend/src/components/HiringWidget.jsx Parādīt failu

@@ -8,7 +8,7 @@ export default function HiringWidget() {

return (
<a href="/careers">
<div className={"size-07 absolute right-[-50px] top-[150px] md:top-0 md:right-0 transition-all px-6 py-4"} onMouseEnter={() => setHover(true)} onMouseLeave={() => setHover(false)}>
<div className={"size-07 absolute right-[-50px] top-[90px] md:top-0 md:right-0 transition-all px-6 py-4"} onMouseEnter={() => setHover(true)} onMouseLeave={() => setHover(false)}>
<div className={"h-[182px] w-[174px] relative flex justify-center items-center"}>
<div className="absolute top-0 left-0 h-full w-full transition-all hover:transition-all">

+ 3
- 1
frontend/src/components/Landing.jsx Parādīt failu

@@ -3,13 +3,14 @@ import { motion } from "framer-motion";
import LandingSVGv2 from "./shared/graphics/LandingSVG-v2";
import HiringWidget from "./HiringWidget";
import Wrapper from "../layout/Wrapper";
import OpenDayBanner from "./OpenDayBanner";

const _data = {
cto: "contact us"
}
const numbers = [
{
value: 93,
value: 90,
static: '+',
title: 'Employees'
},
@@ -43,6 +44,7 @@ const Landing = ({data}) => {

{/* <LandingSVG /> */}
<LandingSVGv2/>
<OpenDayBanner/>
<HiringWidget />
<div className="mb-16 -mt-12 md:mt-5 flex flex-col lg:flex-row justify-between items-center gap-90p">
<div className="flex flex-col gap-8p">

+ 21
- 0
frontend/src/components/OpenDayBanner.jsx Parādīt failu

@@ -0,0 +1,21 @@
import React, { useState } from "react";
import './../App.css'


export default function OpenDayBanner() {
const [isHover,setHover] = useState(false);

return (
<a href="/openday">
<div className={"bg-[#7274AB] size-07 absolute left-[-25px] top-[-50px] rounded-full md:top-[-15px] md:left-0 transition-all px-6 py-2 b-50"+(isHover ? " md:scale-125" : "")} onMouseEnter={() => setHover(true)} onMouseLeave={() => setHover(false)}>
<div className={"relative flex justify-center items-center"}>
<h2 className={"uppercase text-sm z-10 text-white transition-all"}>Open Day - October 27 !</h2>
</div>
</div>
</a>
)
}

+ 26
- 0
frontend/src/components/integrations/GoogleMaps/Map.jsx Parādīt failu

@@ -0,0 +1,26 @@
import React from "react";
import { LoadScript, GoogleMap, Marker } from "@react-google-maps/api";

const LIBRARIES = ["places"];

const Map = ({center,zoom}) => {

return (
<div className="wrapper">
<LoadScript googleMapsApiKey="AIzaSyC8E9pNSrSt8y_1M-zhHuBROQVOhgPZY28" libraries={LIBRARIES}>
<GoogleMap
id="map"
center={center}
zoom={zoom}
mapContainerStyle={{ height: "50%" }}
>
{/* Marker component */}
<Marker position={center} />
</GoogleMap>
</LoadScript>
</div>
);
}


export default Map;

+ 23
- 0
frontend/src/components/integrations/MailChimpForm.jsx Parādīt failu

@@ -0,0 +1,23 @@
import MailchimpSubscribe from "react-mailchimp-subscribe"

const url = "//xxxx.us13.list-manage.com/subscribe/post?u=zefzefzef&id=fnfgn";

// simplest form (only email)
const SimpleForm = () => <MailchimpSubscribe url={url}/>

// use the render prop and your custom form
const MailChimpForm = () => (
<MailchimpSubscribe
url={url}
render={({ subscribe, status, message }) => (
<div>
<SimpleForm onSubmitted={formData => subscribe(formData)} />
{status === "sending" && <div style={{ color: "blue" }}>sending...</div>}
{status === "error" && <div style={{ color: "red" }} dangerouslySetInnerHTML={{__html: message}}/>}
{status === "success" && <div style={{ color: "green" }}>Subscribed !</div>}
</div>
)}
/>
)

export default MailChimpForm;

+ 2
- 2
frontend/src/components/shared/PageTitle.jsx Parādīt failu

@@ -1,9 +1,9 @@
import React from "react";
import PropTypes from 'prop-types'

const PageTitle = ({heading, subheading, left, color}) => {
const PageTitle = ({heading, subheading, left, color,pb}) => {
return (
<div className={"flex flex-col gap-8p"+ (left ? " text-left items-start":" text-left items-center") + (color ? " title-colored" : "")}>
<div className={"flex flex-col gap-8p"+ (left ? " text-left items-start":" text-left items-center") + (color ? " title-colored" : "") + (pb && ` pb-2`)}>
<h6 className="subheading">{subheading}</h6>
<h1 className="heading">{heading}</h1>
</div>

+ 24
- 0
frontend/src/components/shared/Timer/CountdownTimer.jsx Parādīt failu

@@ -0,0 +1,24 @@
import React from 'react';
import { useCountdown } from '../../../hooks/useCountdown';
import ExpiredNotice from './ExpiredNotice';
import ShowCounter from './ShowCounter';
import './timer.css';

const CountdownTimer = ({ targetDate }) => {
const [days, hours, minutes, seconds] = useCountdown(targetDate);

if (days + hours + minutes + seconds <= 0) {
return <ExpiredNotice />;
} else {
return (
<ShowCounter
days={days}
hours={hours}
minutes={minutes}
seconds={seconds}
/>
);
}
};

export default CountdownTimer;

+ 13
- 0
frontend/src/components/shared/Timer/DateTimeDisplay.jsx Parādīt failu

@@ -0,0 +1,13 @@
import React from 'react';
import './timer.css';

const DateTimeDisplay = ({ value, type, isDanger }) => {
return (
<div className={isDanger ? 'countdown danger' : 'countdown'}>
<p className='md:text-head text-title-mobile font-semibold'>{value}</p>
<span className='md:text-title text-p-mobile font-semibold'>{type}</span>
</div>
);
};

export default DateTimeDisplay;

+ 12
- 0
frontend/src/components/shared/Timer/ExpiredNotice.jsx Parādīt failu

@@ -0,0 +1,12 @@
import './timer.css';

const ExpiredNotice = () => {
return (
<div className="expired-notice">
<span>Expired!!!</span>
<p>Please select a future date and time.</p>
</div>
);
};

export default ExpiredNotice

+ 25
- 0
frontend/src/components/shared/Timer/ShowCounter.jsx Parādīt failu

@@ -0,0 +1,25 @@
import DateTimeDisplay from "./DateTimeDisplay";
import './timer.css';

const ShowCounter = ({ days, hours, minutes, seconds }) => {
return (
<div className="show-counter text-dg-primary-900">
<a
href="https://tapasadhikary.com"
target="_blank"
rel="noopener noreferrer"
className="countdown-link"
>
<DateTimeDisplay value={days} type={'Days'} isDanger={days <= 3} />
<p className="md:text-title text-title-mobile font-semibold">:</p>
<DateTimeDisplay value={hours} type={'Hours'} isDanger={false} />
<p className="md:text-title text-title-mobile font-semibold">:</p>
<DateTimeDisplay value={minutes} type={'Mins'} isDanger={false} />
<p className="md:text-title text-title-mobile font-semibold">:</p>
<DateTimeDisplay value={seconds} type={'Seconds'} isDanger={false} />
</a>
</div>
);
};

export default ShowCounter

+ 47
- 0
frontend/src/components/shared/Timer/timer.css Parādīt failu

@@ -0,0 +1,47 @@
.expired-notice {
text-align: center;
padding: 2rem;
border: 1px solid #ebebeb;
border-radius: 0.25rem;
margin: 0.5rem;
}
.expired-notice > span {
font-size: 2.5rem;
font-weight: bold;
color: red;
}
.expired-notice > p {
font-size: 1.5rem;
}
.show-counter {
padding: 0.5rem;
}
.show-counter .countdown-link {
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
padding: 0.5rem;
text-decoration: none;
}
.show-counter .countdown {
line-height: 1.25rem;
padding: 0 0.75rem 0 0.75rem;
align-items: center;
display: flex;
flex-direction: column;
}
.show-counter .countdown.danger {
color: #ff0000;
}
.show-counter .countdown > p {
margin: 0;
}

+ 35
- 0
frontend/src/hooks/useCountdown.js Parādīt failu

@@ -0,0 +1,35 @@
import { useEffect, useState } from 'react';

const useCountdown = (targetDate) => {
const countDownDate = new Date(targetDate).getTime();


const [countDown, setCountDown] = useState(
countDownDate - new Date().getTime()
);

useEffect(() => {
const interval = setInterval(() => {
setCountDown(countDownDate - new Date().getTime());
}, 1000);


return () => clearInterval(interval);
}, [countDownDate]);

return getReturnValues(countDown);
};

const getReturnValues = (countDown) => {
// calculate time left
const days = Math.floor(countDown / (1000 * 60 * 60 * 24));
const hours = Math.floor(
(countDown % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)
);
const minutes = Math.floor((countDown % (1000 * 60 * 60)) / (1000 * 60));
const seconds = Math.floor((countDown % (1000 * 60)) / 1000);

return [days, hours, minutes, seconds];
};

export { useCountdown };

+ 115
- 0
frontend/src/pages/OpenDay.jsx Parādīt failu

@@ -0,0 +1,115 @@
import React from 'react';
import Map from '../components/integrations/GoogleMaps/Map';
import HighlighedText from '../components/shared/HighlighedText';
import PageTitle from '../components/shared/PageTitle';
import CountdownTimer from '../components/shared/Timer/CountdownTimer';
import PageLayout from '../layout/PageLayout';
import Wrapper from '../layout/Wrapper';
import Networking from './../assets/openday/networking.svg';
import Message from './../assets/openday/message.svg';
import Food from './../assets/openday/food.svg';
import VideoGame from './../assets/openday/videogame.svg';
import Prize from './../assets/openday/prize.svg';

const url = 'https://mailchi.mp/dilig/openday';

const OpenDay = () => {
const EventDate = new Date('Oct 27, 2022 17:00:00').getTime();

return (
<PageLayout>
<div className="pt-32 text-center">
<Wrapper>
<PageTitle color heading={'Open Day'} subheading={'Diligent Meet up'} pb />
<h3 className="py-2">Meet our team of Diligent Minds</h3>
<h3 className="h3-heading text-dg-secondary py-2">October 27, 5 PM, Niš</h3>
<div className="w-full flex justify-center py-90p">
<a
// onClick={event => scrollToView(event)}
href={url}
target="_blank"
rel="noopener noreferrer"
className="btn-primary px-64p py-20p lg:w-max whitespace-nowrap"
>
Register
</a>
</div>
<div className="py-4">
<CountdownTimer targetDate={EventDate} />
</div>

<h3 className="h3-heading text-dg-secondary py-32p">Join us!</h3>

<p>Our doors are (always) open</p>

<div className='py-90p'>
<div className="flex flex-col md:flex-row md:w-3/5 py-8 m-auto justify-between gap-8">
<div className='flex flex-col justify-center align-middle gap-4'>
<img src={Message} className='h-[100px] md:h-[150px]' />
<p>Get to know Diligent</p>
</div>
<div className='flex flex-col justify-center align-middle gap-4'>
<img src={VideoGame} className='h-[100px] md:h-[150px]' />
<p>Interactive games</p>
</div>
<div className='flex flex-col justify-center align-middle gap-4'>
<img src={Food} className='h-[100px] md:h-[150px]' />
<p>Food & Drink</p>
</div>
</div>
<div className="flex flex-col md:flex-row md:w-2/5 w-4/5 py-8 m-auto justify-between gap-8">
<div className='flex flex-col justify-center align-middle gap-4'>
<img src={Networking} className='h-[100px] md:h-[150px]' />
<p>Networking</p>
</div>
<div className='flex flex-col justify-center align-middle gap-4'>
<img src={Prize} className='h-[100px] md:h-[150px]' />
<p>Prizes</p>
</div>
</div>
</div>

<div>
<h3 className="h3-heading text-dg-secondary py-32p">Who we are</h3>

<p className='md:w-3/5 m-auto'>
We are a team of diligent, creative, and dedicated minds who are always open
to new pieces of our giant puzzle. As a modern software development company,
we build high-quality custom software solutions while cultivating a work
environment that promotes community, family, learning, and mentoring.
</p>

<p className='md:w-3/5 m-auto'>
By utilizing cutting-edge technologies, our agile teams provide a
combination of product & technology strategies to help our clients become
more engaging, responsive, and efficient. We can proudly say that we have
been cooperating with our largest clients from the American market for
almost a decade. Our core industries are fintech, healthcare, and
transportation.
</p>

<section
id="highlight"
className="flex flex-col items-center justify-center w-3/5 m-auto py-32p"
>
<HighlighedText
text={'Diligent has close to 100 employees located throughout Serbia.'}
/>
</section>

<p className='w-3/5 m-auto py-32p'>
We understand that investing in long-term customer relationships is
essential, but we also recognize the importance of providing rewarding and
challenging careers for our employees.
</p>
</div>

<div>{/* <Map zoom={15} center={{lat:37.558689,lng:-121.986029}}/> */}</div>
</Wrapper>
</div>
</PageLayout>
);
};

export default OpenDay;

+ 93
- 4
frontend/yarn.lock Parādīt failu

@@ -1131,6 +1131,21 @@
"resolved" "https://registry.npmjs.org/@faceless-ui/window-info/-/window-info-2.1.1.tgz"
"version" "2.1.1"

"@googlemaps/js-api-loader@1.14.3":
"integrity" "sha512-6iIb+qpGgQpgIHmIFO44WhE1rDUxPVHuezNFL30wRJnkvhwFm94tD291UvNg9L05hLDSoL16jd0lbqqmdy4C5g=="
"resolved" "https://registry.npmjs.org/@googlemaps/js-api-loader/-/js-api-loader-1.14.3.tgz"
"version" "1.14.3"
dependencies:
"fast-deep-equal" "^3.1.3"

"@googlemaps/markerclusterer@2.0.10":
"integrity" "sha512-3UdPE2XH+DkFRTWIxEOcKdTqb3O9dMMxBn5jlhSae//uBGPqv9iHv9dz4l6/0Mwt7YcYmkwSpQZMc61WvZI/Qg=="
"resolved" "https://registry.npmjs.org/@googlemaps/markerclusterer/-/markerclusterer-2.0.10.tgz"
"version" "2.0.10"
dependencies:
"fast-deep-equal" "^3.1.3"
"supercluster" "^7.1.3"

"@headlessui/react@^1.4.3":
"integrity" "sha512-n2IQkaaw0aAAlQS5MEXsM4uRK+w18CrM72EqnGRl/UBOQeQajad8oiKXR9Nk15jOzTFQjpxzrZMf1NxHidFBiw=="
"resolved" "https://registry.npmjs.org/@headlessui/react/-/react-1.4.3.tgz"
@@ -1429,6 +1444,28 @@
"schema-utils" "^3.0.0"
"source-map" "^0.7.3"

"@react-google-maps/api@^2.13.1":
"integrity" "sha512-5P8H3GJpCy9th5u6OUzw36WD5NUAl3hDmcPDaVvowRb9Cn2Zf7b1wLCZ4If+k+gX4o2apsSjD+JtWiRogLOMdQ=="
"resolved" "https://registry.npmjs.org/@react-google-maps/api/-/api-2.13.1.tgz"
"version" "2.13.1"
dependencies:
"@googlemaps/js-api-loader" "1.14.3"
"@googlemaps/markerclusterer" "2.0.10"
"@react-google-maps/infobox" "2.11.8"
"@react-google-maps/marker-clusterer" "2.11.8"
"@types/google.maps" "3.49.2"
"invariant" "2.2.4"

"@react-google-maps/infobox@2.11.8":
"integrity" "sha512-15y3dniys1Op5HREyLwiJI2pAdeeHRJT5b4WPrS+vyL5KF6iXK1P3y/9bXtnxHiKe2v6iPreaEhR3VgvfRA50Q=="
"resolved" "https://registry.npmjs.org/@react-google-maps/infobox/-/infobox-2.11.8.tgz"
"version" "2.11.8"

"@react-google-maps/marker-clusterer@2.11.8":
"integrity" "sha512-OEcdbTXEgPwdpGvVuSrhIhjcZPhlzPz2TvaKCBLraf1PKiDyLOPhlTVRlbIziLiu0xN89pJcill1w9UVIVFF+Q=="
"resolved" "https://registry.npmjs.org/@react-google-maps/marker-clusterer/-/marker-clusterer-2.11.8.tgz"
"version" "2.11.8"

"@react-hook/latest@^1.0.2":
"integrity" "sha512-dy6duzl+JnAZcDbNTfmaP3xHiKtbXYOaz3G51MGVljh548Y8MWzTr+PHLOfvpypEVW9zwvl+VyKjbWKEVbV1Rg=="
"resolved" "https://registry.npmjs.org/@react-hook/latest/-/latest-1.0.3.tgz"
@@ -1806,6 +1843,11 @@
"@types/qs" "*"
"@types/serve-static" "*"

"@types/google.maps@3.49.2":
"integrity" "sha512-ZO1qWciukqED9qcUNW7OaPXWnTlT+tO3WcYkmudZyQW2BqD7TlMFRrdqSCoqfwKhERCwBA5A/YZt/g5A3BqgLQ=="
"resolved" "https://registry.npmjs.org/@types/google.maps/-/google.maps-3.49.2.tgz"
"version" "3.49.2"

"@types/graceful-fs@^4.1.2":
"integrity" "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw=="
"resolved" "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz"
@@ -3532,6 +3574,13 @@
"whatwg-mimetype" "^2.3.0"
"whatwg-url" "^8.0.0"

"debug@^2.1.3":
"integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="
"resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
"version" "2.6.9"
dependencies:
"ms" "2.0.0"

"debug@^2.6.0":
"integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="
"resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
@@ -5163,6 +5212,13 @@
"resolved" "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz"
"version" "2.2.0"

"invariant@2.2.4":
"integrity" "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA=="
"resolved" "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz"
"version" "2.2.4"
dependencies:
"loose-envify" "^1.0.0"

"ip@^1.1.0":
"integrity" "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo="
"resolved" "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz"
@@ -5993,6 +6049,13 @@
optionalDependencies:
"graceful-fs" "^4.1.6"

"jsonp@^0.2.1":
"integrity" "sha512-pfog5gdDxPdV4eP7Kg87M8/bHgshlZ5pybl+yKxAnCZ5O7lCIn7Ixydj03wOlnDQesky2BPyA91SQ+5Y/mNwzw=="
"resolved" "https://registry.npmjs.org/jsonp/-/jsonp-0.2.1.tgz"
"version" "0.2.1"
dependencies:
"debug" "^2.1.3"

"jsonpointer@^5.0.0":
"integrity" "sha512-PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg=="
"resolved" "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.0.tgz"
@@ -6006,6 +6069,11 @@
"array-includes" "^3.1.3"
"object.assign" "^4.1.2"

"kdbush@^3.0.0":
"integrity" "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew=="
"resolved" "https://registry.npmjs.org/kdbush/-/kdbush-3.0.0.tgz"
"version" "3.0.0"

"kind-of@^6.0.2":
"integrity" "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
"resolved" "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz"
@@ -6162,7 +6230,7 @@
"resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
"version" "4.17.21"

"loose-envify@^1.1.0", "loose-envify@^1.4.0":
"loose-envify@^1.0.0", "loose-envify@^1.1.0", "loose-envify@^1.4.0":
"integrity" "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="
"resolved" "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz"
"version" "1.4.0"
@@ -7629,7 +7697,7 @@
"kleur" "^3.0.3"
"sisteransi" "^1.0.5"

"prop-types@^15.0.0", "prop-types@^15.7.2", "prop-types@^15.8.1":
"prop-types@^15.0.0", "prop-types@^15.5.10", "prop-types@^15.7.2", "prop-types@^15.8.1":
"integrity" "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg=="
"resolved" "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz"
"version" "15.8.1"
@@ -7757,7 +7825,7 @@
"strip-ansi" "^6.0.1"
"text-table" "^0.2.0"

"react-dom@*", "react-dom@^16 || ^17 || ^18", "react-dom@^16.8.0 || ^17.0.0 || ^18.0.0", "react-dom@^17.0.2", "react-dom@>= 16.8.0", "react-dom@>=16.8", "react-dom@>=16.8 || ^17.0.0 || ^18.0.0":
"react-dom@*", "react-dom@^16 || ^17 || ^18", "react-dom@^16.8 || ^17 || ^18", "react-dom@^16.8.0 || ^17.0.0 || ^18.0.0", "react-dom@^17.0.2", "react-dom@>= 16.8.0", "react-dom@>=16.8", "react-dom@>=16.8 || ^17.0.0 || ^18.0.0":
"integrity" "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA=="
"resolved" "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz"
"version" "17.0.2"
@@ -7800,6 +7868,15 @@
"resolved" "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz"
"version" "17.0.2"

"react-mailchimp-subscribe@^2.1.3":
"integrity" "sha512-ZRuPZMnX/9pHQLnAQavsgB5xIF+gNqjNCCq1vvTs23cn+93W2oOp17qjg3LpDBEt1HJi6IHXMwpKXn0taY8FHw=="
"resolved" "https://registry.npmjs.org/react-mailchimp-subscribe/-/react-mailchimp-subscribe-2.1.3.tgz"
"version" "2.1.3"
dependencies:
"jsonp" "^0.2.1"
"prop-types" "^15.5.10"
"to-querystring" "^1.0.4"

"react-markdown@^8.0.0":
"integrity" "sha512-qbrWpLny6Ef2xHqnYqtot948LXP+4FtC+MWIuaN1kvSnowM+r1qEeEHpSaU0TDBOisQuj+Qe6eFY15cNL3gLAw=="
"resolved" "https://registry.npmjs.org/react-markdown/-/react-markdown-8.0.0.tgz"
@@ -7895,7 +7972,7 @@
optionalDependencies:
"fsevents" "^2.3.2"

"react@*", "react@^16 || ^17 || ^18", "react@^16.8.0 || ^17.0.0 || ^18.0.0", "react@^17.0.2", "react@>= 16", "react@>= 16.8", "react@>= 16.8.0", "react@>=16", "react@>=16.8", "react@>=16.8 || ^17.0.0 || ^18.0.0", "react@>=16.8.0", "react@17.0.2":
"react@*", "react@^16 || ^17 || ^18", "react@^16.8 || ^17 || ^18", "react@^16.8.0 || ^17.0.0 || ^18.0.0", "react@^17.0.2", "react@>= 16", "react@>= 16.8", "react@>= 16.8.0", "react@>=15", "react@>=16", "react@>=16.8", "react@>=16.8 || ^17.0.0 || ^18.0.0", "react@>=16.8.0", "react@17.0.2":
"integrity" "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA=="
"resolved" "https://registry.npmjs.org/react/-/react-17.0.2.tgz"
"version" "17.0.2"
@@ -8750,6 +8827,13 @@
"browserslist" "^4.16.0"
"postcss-selector-parser" "^6.0.4"

"supercluster@^7.1.3":
"integrity" "sha512-EulshI3pGUM66o6ZdH3ReiFcvHpM3vAigyK+vcxdjpJyEbIIrtbmBdY23mGgnI24uXiGFvrGq9Gkum/8U7vJWg=="
"resolved" "https://registry.npmjs.org/supercluster/-/supercluster-7.1.5.tgz"
"version" "7.1.5"
dependencies:
"kdbush" "^3.0.0"

"supports-color@^5.3.0", "supports-color@^5.5.0":
"integrity" "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="
"resolved" "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"
@@ -8963,6 +9047,11 @@
"resolved" "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz"
"version" "2.0.0"

"to-querystring@^1.0.4":
"integrity" "sha512-ZgIacl9TXAoT7sGXUYjQiy0MW7Tf/7CJQLt757hYHfXXc8JBzOVBMx4DckqKUO4hi36J72/m8UcH/GCHK+n97g=="
"resolved" "https://registry.npmjs.org/to-querystring/-/to-querystring-1.1.1.tgz"
"version" "1.1.1"

"to-regex-range@^5.0.1":
"integrity" "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="
"resolved" "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"

Notiek ielāde…
Atcelt
Saglabāt