diff --git a/codegen.yml b/codegen.yml index 5b8d6ab5..068ac0e2 100644 --- a/codegen.yml +++ b/codegen.yml @@ -1,4 +1,4 @@ -schema: https://incridea-test.onrender.com/graphql +schema: http://localhost:4000/graphql documents: "./src/**/*.graphql" generates: ./src/generated/generated.ts: diff --git a/package-lock.json b/package-lock.json index 6b3d5587..2840af4f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,6 +29,7 @@ "next-auth": "^4.20.1", "next-pwa": "^5.6.0", "npm": "^9.6.5", + "parallax-js": "^3.1.0", "qrcode.react": "^3.1.0", "react": "18.2.0", "react-csv": "^2.2.2", @@ -53,6 +54,7 @@ "@types/draftjs-to-html": "^0.8.1", "@types/locomotive-scroll": "^4.1.0", "@types/node": "18.11.19", + "@types/parallax-js": "^3.1.3", "@types/react": "18.0.27", "@types/react-dom": "18.0.10", "@types/react-draft-wysiwyg": "^1.13.4", @@ -3572,6 +3574,12 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.19.tgz", "integrity": "sha512-YUgMWAQBWLObABqrvx8qKO1enAvBUdjZOAWQ5grBAkp5LQv45jBvYKZ3oFS9iKRCQyFjqw6iuEa1vmFqtxYLZw==" }, + "node_modules/@types/parallax-js": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/parallax-js/-/parallax-js-3.1.3.tgz", + "integrity": "sha512-pA2JQ+oqzMJ8TQiXjah3zkbMhd032mAvgbzu/nusQyKCpI6s8R/HT6zqsUXPXRXAgWBsrIpv+CCV2VND5nroNg==", + "dev": true + }, "node_modules/@types/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", @@ -11947,6 +11955,15 @@ "node": ">=6" } }, + "node_modules/parallax-js": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/parallax-js/-/parallax-js-3.1.0.tgz", + "integrity": "sha512-UONoPKSQykeNvFcemDPxYYDU/T89LSffoaZAwOMhDp0ABhmFPwthgn2GrfB7An9Qo+8nPZIuQeZsh2pWn1qN3A==", + "dependencies": { + "object-assign": "^4.1.1", + "raf": "^3.3.0" + } + }, "node_modules/param-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", @@ -12085,6 +12102,11 @@ "node": ">=8" } }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -12484,6 +12506,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "dependencies": { + "performance-now": "^2.1.0" + } + }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -17516,6 +17546,12 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.19.tgz", "integrity": "sha512-YUgMWAQBWLObABqrvx8qKO1enAvBUdjZOAWQ5grBAkp5LQv45jBvYKZ3oFS9iKRCQyFjqw6iuEa1vmFqtxYLZw==" }, + "@types/parallax-js": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/parallax-js/-/parallax-js-3.1.3.tgz", + "integrity": "sha512-pA2JQ+oqzMJ8TQiXjah3zkbMhd032mAvgbzu/nusQyKCpI6s8R/HT6zqsUXPXRXAgWBsrIpv+CCV2VND5nroNg==", + "dev": true + }, "@types/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", @@ -23414,6 +23450,15 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, + "parallax-js": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/parallax-js/-/parallax-js-3.1.0.tgz", + "integrity": "sha512-UONoPKSQykeNvFcemDPxYYDU/T89LSffoaZAwOMhDp0ABhmFPwthgn2GrfB7An9Qo+8nPZIuQeZsh2pWn1qN3A==", + "requires": { + "object-assign": "^4.1.1", + "raf": "^3.3.0" + } + }, "param-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", @@ -23522,6 +23567,11 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, "picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -23775,6 +23825,14 @@ "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", "dev": true }, + "raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "requires": { + "performance-now": "^2.1.0" + } + }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", diff --git a/package.json b/package.json index ef4ad00a..546daa96 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "next-auth": "^4.20.1", "next-pwa": "^5.6.0", "npm": "^9.6.5", + "parallax-js": "^3.1.0", "qrcode.react": "^3.1.0", "react": "18.2.0", "react-csv": "^2.2.2", @@ -55,6 +56,7 @@ "@types/draftjs-to-html": "^0.8.1", "@types/locomotive-scroll": "^4.1.0", "@types/node": "18.11.19", + "@types/parallax-js": "^3.1.3", "@types/react": "18.0.27", "@types/react-dom": "18.0.10", "@types/react-draft-wysiwyg": "^1.13.4", diff --git a/public/assets/eventSlug/cover.svg b/public/assets/eventSlug/cover.svg deleted file mode 100644 index 4f105c52..00000000 --- a/public/assets/eventSlug/cover.svg +++ /dev/null @@ -1,19312 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/assets/eventSlug/map.svg b/public/assets/eventSlug/map.svg deleted file mode 100644 index 38515fc8..00000000 --- a/public/assets/eventSlug/map.svg +++ /dev/null @@ -1,6794 +0,0 @@ - - 1117307_119163-OPH8EP-815-ai - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/assets/home/DoD.png b/public/assets/home/DoD.png new file mode 100644 index 00000000..d4171d08 Binary files /dev/null and b/public/assets/home/DoD.png differ diff --git a/public/assets/home/bg.png b/public/assets/home/bg.png new file mode 100644 index 00000000..14f824f3 Binary files /dev/null and b/public/assets/home/bg.png differ diff --git a/public/assets/home/moon.png b/public/assets/home/moon.png new file mode 100644 index 00000000..66db7490 Binary files /dev/null and b/public/assets/home/moon.png differ diff --git a/public/assets/home/portal.png b/public/assets/home/portal.png new file mode 100644 index 00000000..6aee9155 Binary files /dev/null and b/public/assets/home/portal.png differ diff --git a/public/assets/home/ryoko.png b/public/assets/home/ryoko.png new file mode 100644 index 00000000..80bd1fea Binary files /dev/null and b/public/assets/home/ryoko.png differ diff --git a/public/assets/home/stars.png b/public/assets/home/stars.png new file mode 100644 index 00000000..5281eda0 Binary files /dev/null and b/public/assets/home/stars.png differ diff --git a/public/assets/landing/Lottery.svg b/public/assets/landing/Lottery.svg deleted file mode 100644 index 387c8ec0..00000000 --- a/public/assets/landing/Lottery.svg +++ /dev/null @@ -1,4196 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/assets/landing/WebUIInc24.png b/public/assets/landing/WebUIInc24.png deleted file mode 100644 index ef5f3db7..00000000 Binary files a/public/assets/landing/WebUIInc24.png and /dev/null differ diff --git a/public/assets/landing/landing@2x.png b/public/assets/landing/landing@2x.png new file mode 100644 index 00000000..ba73a5e6 Binary files /dev/null and b/public/assets/landing/landing@2x.png differ diff --git a/public/assets/landing/lounge@2x.png b/public/assets/landing/lounge@2x.png new file mode 100644 index 00000000..b7185253 Binary files /dev/null and b/public/assets/landing/lounge@2x.png differ diff --git a/public/assets/landing/ryoko2.png b/public/assets/landing/ryoko2.png deleted file mode 100644 index a5ac33c2..00000000 Binary files a/public/assets/landing/ryoko2.png and /dev/null differ diff --git a/public/assets/landing/tv-static.mp4 b/public/assets/landing/tv-static.mp4 deleted file mode 100644 index d8db99b1..00000000 Binary files a/public/assets/landing/tv-static.mp4 and /dev/null differ diff --git a/public/assets/png/bomb.png b/public/assets/png/bomb.png new file mode 100644 index 00000000..3fb42db8 Binary files /dev/null and b/public/assets/png/bomb.png differ diff --git a/public/assets/png/bowArrow.png b/public/assets/png/bowArrow.png new file mode 100644 index 00000000..02da2b4c Binary files /dev/null and b/public/assets/png/bowArrow.png differ diff --git a/public/assets/png/dice.png b/public/assets/png/dice.png new file mode 100644 index 00000000..13b6c690 Binary files /dev/null and b/public/assets/png/dice.png differ diff --git a/public/assets/png/explodeGif.gif b/public/assets/png/explodeGif.gif new file mode 100644 index 00000000..b04a5d30 Binary files /dev/null and b/public/assets/png/explodeGif.gif differ diff --git a/public/assets/png/loginPortal.png b/public/assets/png/loginPortal.png new file mode 100644 index 00000000..b2d39940 Binary files /dev/null and b/public/assets/png/loginPortal.png differ diff --git a/public/assets/png/loginPortalB.png b/public/assets/png/loginPortalB.png new file mode 100644 index 00000000..0ea02c1b Binary files /dev/null and b/public/assets/png/loginPortalB.png differ diff --git a/public/assets/png/loginPortalT.png b/public/assets/png/loginPortalT.png new file mode 100644 index 00000000..a917fcc6 Binary files /dev/null and b/public/assets/png/loginPortalT.png differ diff --git a/public/assets/png/pacman.png b/public/assets/png/pacman.png new file mode 100644 index 00000000..370b6e07 Binary files /dev/null and b/public/assets/png/pacman.png differ diff --git a/public/assets/png/pawn.png b/public/assets/png/pawn.png new file mode 100644 index 00000000..38fe4b41 Binary files /dev/null and b/public/assets/png/pawn.png differ diff --git a/public/assets/png/potion.png b/public/assets/png/potion.png new file mode 100644 index 00000000..6b0063ce Binary files /dev/null and b/public/assets/png/potion.png differ diff --git a/public/assets/png/rulebook.png b/public/assets/png/rulebook.png new file mode 100644 index 00000000..fdf0b16b Binary files /dev/null and b/public/assets/png/rulebook.png differ diff --git a/public/assets/png/sheild.png b/public/assets/png/sheild.png new file mode 100644 index 00000000..6dd82e2c Binary files /dev/null and b/public/assets/png/sheild.png differ diff --git a/public/assets/png/sword.png b/public/assets/png/sword.png new file mode 100644 index 00000000..f920c46e Binary files /dev/null and b/public/assets/png/sword.png differ diff --git a/public/assets/png/witchHat.png b/public/assets/png/witchHat.png new file mode 100644 index 00000000..d7d33c69 Binary files /dev/null and b/public/assets/png/witchHat.png differ diff --git a/public/assets/svg/loginBG.svg b/public/assets/svg/loginBG.svg new file mode 100644 index 00000000..8c831fb1 --- /dev/null +++ b/public/assets/svg/loginBG.svg @@ -0,0 +1,965 @@ + + 2310-w026-n002-3910B-p1-3910-ai + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/components/button/index.tsx b/src/components/button/index.tsx index d1e4a1f5..339de971 100644 --- a/src/components/button/index.tsx +++ b/src/components/button/index.tsx @@ -1,25 +1,25 @@ import { cva, VariantProps } from 'class-variance-authority'; -import React from 'react'; +import React, { ReactChildren, ReactElement } from 'react'; const buttonStyles = cva( - `flex gap-2 items-center transition-colors font-VikingHell duration-300`, + `flex gap-2 items-center transition-all font-VikingHell tracking-widest duration-300 ease-in-out`, { variants: { intent: { primary: - 'bg-gradient-to-tr from-secondary-800 to-secondary-500 text-white -skew-x-12', + 'bg-gradient-to-tr from-secondary-800 to-secondary-600 text-white -skew-x-12', secondary: 'bg-gray-700 text-gray-200 hover:bg-gray-600', danger: 'bg-red-500 text-white hover:bg-red-600', success: 'bg-green-500 text-white hover:bg-green-600', info: 'bg-teal-500 text-white hover:bg-teal-600', dark: 'bg-gray-900/60 text-white hover:bg-opacity-30', - ghost: 'bg-transparent border-secondary-700 border text-secondary-700 -skew-x-12', + ghost: 'bg-transparent border-secondary-700 border text-secondary-700 -skew-x-12 backdrop-blur-md', }, size: { small: ['text-sm', 'py-1', 'px-2'], medium: ['text-sm md:text-base', 'py-1 md:py-2', 'px-2 md:px-4'], large: ['text-lg', 'py-2', 'px-4'], - xlarge: ['text-lg sm:text-2xl','py-2'] + xlarge: ['text-lg md:text-3xl','py-2'] }, fullWidth: { true: 'w-full', @@ -57,11 +57,11 @@ const buttonStyles = cva( } ); -interface ButtonProps extends VariantProps { +interface ButtonProps extends VariantProps , React.ButtonHTMLAttributes { disabled?: boolean; style?: React.CSSProperties & { [key: string]: any }; noScaleOnHover?: boolean; - children?: string; + children?: React.ReactNode; className?: string } diff --git a/src/components/exploreGame/index.tsx b/src/components/exploreGame/index.tsx index b3c5ea98..e6e00548 100644 --- a/src/components/exploreGame/index.tsx +++ b/src/components/exploreGame/index.tsx @@ -1,5 +1,6 @@ /* eslint-disable @next/next/no-img-element */ import { useEffect, useRef, useState } from "react"; +import Image from "next/image"; import { SpriteDimensions, platformDimensions, @@ -47,6 +48,8 @@ const ExploreGame = () => { let frameCount: number = 0; const gravity: number = 0.15; let showAboutFlag = true; + let showRuleBookFlag = true; + let showScheduleFlag = true; const resizeCanvas = () => { if (canvas.current) { @@ -322,6 +325,10 @@ const ExploreGame = () => { ) { // Standing on the left platform isGrounded = true; + if (showScheduleFlag) { + setShowSchedule(true); + showScheduleFlag = false; + } player.current.y = window.innerHeight * (platformDimensions.left.yPercentage + 0.015) - player.current.height; @@ -365,6 +372,10 @@ const ExploreGame = () => { ) { // Standing on the right platform isGrounded = true; + if (showRuleBookFlag) { + setShowRuleBook(true); + showRuleBookFlag = false; + } player.current.y = window.innerHeight * (platformDimensions.right.yPercentage + 0.02) - player.current.height; @@ -440,7 +451,11 @@ const ExploreGame = () => { isGrounded = false; setShowAbout(false); + setShowRuleBook(false); + setShowSchedule(false); + showRuleBookFlag = true; showAboutFlag = true; + showScheduleFlag = true; }; const animate = () => { @@ -569,7 +584,7 @@ const ExploreGame = () => { }, [scrollY]); return ( -
+
{ ref={platformSprite} />
-
-

- INCRIDEA -

-

- DICE OF DESTINY -

- -

RYOKO

-

000006

-
- - © Incridea 2024 - +
+
+

+ INCRIDEA +

+

+ DICE OF DESTINY +

+ +

RYOKO

+

000006

+
+ + © Incridea 2024 + +
{ viewBox="0 0 1222 888" fill="none" xmlns="http://www.w3.org/2000/svg" - className="pointer-events-none" + className="pointer-events-none mb-8 mr-8" > - - -
- ); + const { RiveComponent } = useRive({ + src: `assets/rive/footer.riv/`, + stateMachines: ["State Machine 1"], + autoplay: true, + layout: new Layout({ + fit: Fit.FitWidth, + alignment: Alignment.BottomCenter, + }), + }); + return ( +
+ + +
+ ); } export function FooterBody() { - return ( - -
-
-

- - Made with by Technical Team - - © Incridea 2023 -

-
-
- ); + ); } export default function Footer() { - const router = useRouter(); - if (router.pathname === "/") return null; - if (router.pathname === "/gallery") return null; - if (router.pathname === "/pronites") return null; - return ; + const router = useRouter(); + if (router.pathname === "/") return null; + if (router.pathname === "/gallery") return null; + if (router.pathname === "/pronites") return null; + return ; } diff --git a/src/components/form/login/signInForm.tsx b/src/components/form/login/signInForm.tsx index 6c8edb83..3631346b 100644 --- a/src/components/form/login/signInForm.tsx +++ b/src/components/form/login/signInForm.tsx @@ -1,10 +1,10 @@ -import { signIn } from 'next-auth/react'; -import { useRouter } from 'next/router'; -import { FormEventHandler, FunctionComponent, useState } from 'react'; -import { BiErrorCircle } from 'react-icons/bi'; -import Button from '../../button'; -import Spinner from '../../spinner'; -import { AiFillEye, AiFillEyeInvisible } from 'react-icons/ai'; +import { signIn } from "next-auth/react"; +import { useRouter } from "next/router"; +import { FormEventHandler, FunctionComponent, useState } from "react"; +import { BiErrorCircle } from "react-icons/bi"; +import Button from "../../button"; +import Spinner from "../../spinner"; +import { AiFillEye, AiFillEyeInvisible } from "react-icons/ai"; type SignInFormProps = { setWhichForm: ( diff --git a/src/components/hero/index.tsx b/src/components/hero/index.tsx index 9dcff730..4952028a 100644 --- a/src/components/hero/index.tsx +++ b/src/components/hero/index.tsx @@ -84,9 +84,8 @@ function Sun() { {[...Array(8)].map((_, index) => (
number = () => { + /* used to generate the point from where the element should fall */ + /* in a range of 0% to 100% of portal width */ + return Math.floor(Math.random() * (60-40)) + 40; +}; + +const FallingElement: React.FC = ({ src, size }: srcProps) => { + const [localSrc, setLocalSrc] = useState(src); + const [left, setLeft] = useState(0); + + useEffect(() => { + setLeft(getPosition()); + }, []); + useEffect(()=>{ + localSrc==="explodeGif.gif" ? setTimeout(()=>{setLocalSrc("")},1000): null; + },[localSrc]) + return ( + <> +
{ localSrc === "bomb.png" ? setLocalSrc("explodeGif.gif") : null }} + className={`absolute bottom-0 animate-free-fall ${localSrc === "bomb.png" ? "z-[900]": "z-50"}`} + style={{ + + left: `${localSrc !== "explodeGif.gif" ? left : left-15}%`, + width: `${localSrc !== "explodeGif.gif" ? size.width : 170}px`, + height: `${localSrc !== "explodeGif.gif" ? size.height : 170}px`, + }}> + {localSrc != "" ? {""}: null} + + + +
+ + + ); +}; + +export default FallingElement; diff --git a/src/components/pages/dashboard/accommodate/AccomodateTab.tsx b/src/components/pages/dashboard/accommodate/AccomodateTab.tsx new file mode 100644 index 00000000..44785a6e --- /dev/null +++ b/src/components/pages/dashboard/accommodate/AccomodateTab.tsx @@ -0,0 +1,112 @@ +import { FC } from "react"; +import { useQuery } from "@apollo/client"; +import { AccommodationRequestsDocument } from "@/src/generated/generated"; +import Spinner from "@/src/components/spinner"; +import AddAccommodateDetails from "./AddAccommodateDetails"; +import ViewAccommodateDetails from "./ViewAccommodateDetails"; +import HotelModal from "./HotelModal"; + +const AccommodateTab: FC = () => { + const { + data: accommodationRequests, + loading: accommodateLoading, + refetch: accommodatefetch, + } = useQuery(AccommodationRequestsDocument, {}); + return ( + <> +
+ {/* Admin Header */} + +
+
+
+

Accommodation Requests

+
+ +
+
+
+

Name

+

Gender

+

CheckIn

+

CheckOut

+

Hotel

+

Room No.

+

Status

+

Action

+

View

+
+ {accommodateLoading && ( +
+ +
+ )} + +
+ {accommodationRequests?.accommodationRequests?.__typename == + "QueryAccommodationRequestsSuccess" ? ( + accommodationRequests?.accommodationRequests?.data.map( + (acc, idx) => ( +
+

+ {acc?.user?.name} +

+

+ {acc?.gender} +

+

+ {acc?.checkIn + ? new Date(Date.parse(acc?.checkIn)).toString() + : "Not Available"} +

+

+ {acc?.checkOut + ? new Date(Date.parse(acc?.checkOut)).toString() + : "Not Available"} +

+

+ {acc?.hotel?.name} +

+

+ {acc?.room} +

+

+ {acc?.status} +

+

+ +

+ +
+ ) + ) + ) : ( + <> + {accommodationRequests?.accommodationRequests?.__typename == + "Error" ? ( +
+

+ No Accommodation Requests +

+
+ ) : ( + <> + )} + + )} +
+
+
+
+ + ); +}; + +export default AccommodateTab; diff --git a/src/components/pages/dashboard/accommodate/AddAccommodateDetails.tsx b/src/components/pages/dashboard/accommodate/AddAccommodateDetails.tsx new file mode 100644 index 00000000..ba32d629 --- /dev/null +++ b/src/components/pages/dashboard/accommodate/AddAccommodateDetails.tsx @@ -0,0 +1,146 @@ +import React from "react"; + +import { FC, useState } from "react"; +import Button from "@/src/components/button"; +import { MdModeEditOutline } from "react-icons/md"; +import Modal from "@/src/components/modal"; +import { + GetAllHotelsDocument, + UpdateAccommodationStatusDocument, +} from "@/src/generated/generated"; +import { useMutation, useQuery } from "@apollo/client"; +import Spinner from "@/src/components/spinner"; +import createToast from "@/src/components/toast"; + +enum AccommodationStatus { + pending = "PENDING", + complete = "CONFIRMED", + cancelled = "CANCELLED", +} +const AddAccommodateDetails: FC<{ + accId: String; +}> = ({ accId }) => { + const [showModal, setShowModal] = useState(false); + const [hotelDetails, setHotelDetails] = useState(""); + const [roomNo, setRoomNo] = useState(""); + const [status, setStatus] = useState(""); + + const { + data: allHotels, + loading: hotelLoading, + refetch: hotelRefetch, + } = useQuery(GetAllHotelsDocument); + + const [updateStatus, { data: updateStatusResult }] = useMutation( + UpdateAccommodationStatusDocument + ); + const handleUpdate = () => { + let promise = updateStatus({ + variables: { + hotelId: hotelDetails, + room: roomNo, + bookingId: accId as string, + status, + }, + }).then((res) => { + if (res.data?.updateStatus.__typename !== "MutationUpdateStatusSuccess") { + if (res.data?.updateStatus.message !== undefined) { + createToast( + Promise.reject(res.data?.updateStatus.message), + res.data?.updateStatus.message + ); + } + return Promise.reject("Error could update status"); + } + }); + createToast(promise, "Updating Status..."); + }; + return ( + <> + + setShowModal(false)} + title={"Edit Accommodation Details"} + size="medium" + > +
+
+ + +
+
+

Room No.

+ { + setRoomNo(e.target.value); + }} + value={roomNo} + required + /> +
+ +
+ + + +
+
+
+ + ); +}; + +export default AddAccommodateDetails; diff --git a/src/components/pages/dashboard/accommodate/AddHotelModal.tsx b/src/components/pages/dashboard/accommodate/AddHotelModal.tsx new file mode 100644 index 00000000..67985f7d --- /dev/null +++ b/src/components/pages/dashboard/accommodate/AddHotelModal.tsx @@ -0,0 +1,107 @@ +import Button from "@/src/components/button"; +import Modal from "@/src/components/modal"; +import { FC, useState } from "react"; +import { CreateHotelDocument, GetAllHotelsDocument } from "@/src/generated/generated"; +import { useMutation } from "@apollo/client"; +import createToast from "@/src/components/toast"; +import { IoAdd } from "react-icons/io5"; + + +const AddHotelModal:FC = () => { + + const [showModal, setShowModal] = useState(false); + const [name, setName] = useState(''); + const [hotelDescription, setHotelDescription] = useState(''); + const [price, setPrice] = useState(0); + + const [addHotel] = useMutation(CreateHotelDocument, { + refetchQueries: [GetAllHotelsDocument], + awaitRefetchQueries: true + }) + + function handleHotelModel() { + let promise = addHotel({ + variables: { + name : name, + details : hotelDescription, + price : price, + } + }).then((res) => { + if(res?.data?.createHotel.__typename !== 'MutationCreateHotelSuccess') + return Promise.reject('Error could not add hotel'); + }); + createToast(promise,'Adding Hotel...'); + setName(''); + setHotelDescription(''); + setPrice(0); + setShowModal(false); + } + + + return ( + <> +
+
+ +
+ setShowModal(false)} + size="medium" + title="Add Hotel" + > +
+
+

Name

+ {setName(e.target.value)}} + value={name} + required + /> +
+
+

Hotel Description

+