From ecc0bf05656ab1b32b0eedfc6cf389394c861d18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Castillo?= Date: Mon, 12 Aug 2024 23:46:03 -0300 Subject: [PATCH 1/6] New badge QR page for user with summit hall checked in MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tomás Castillo --- src/components/Navbar/index.js | 6 +- src/content/navbar/index.json | 9 +++ src/pages/a/[...].js | 7 +- src/routes/WithCheckedBadgeRoute.js | 41 ++++++++++++ src/templates/badge-page.js | 99 +++++++++++++++++++++++++++++ src/utils/authorizedGroups.js | 4 ++ 6 files changed, 164 insertions(+), 2 deletions(-) create mode 100644 src/routes/WithCheckedBadgeRoute.js create mode 100644 src/templates/badge-page.js diff --git a/src/components/Navbar/index.js b/src/components/Navbar/index.js index e40c15b4..7183640b 100644 --- a/src/components/Navbar/index.js +++ b/src/components/Navbar/index.js @@ -29,6 +29,8 @@ const Navbar = ({ userProfile ? userHasAccessLevel(userProfile.summit_tickets, VIRTUAL_ACCESS_LEVEL) : false , [userProfile]); + const hasSummitHallCheckedIn = userProfile ? userHasCheckedInBadge(userProfile.summit_tickets) : false; + const defaultPath = getDefaultLocation(eventRedirect, hasVirtualBadge); const meetsUserRequirement = (userRequirement) => { @@ -84,7 +86,9 @@ const Navbar = ({ (item.pageRestriction.includes(PAGE_RESTRICTIONS.marketing) && isMarketingPage(currentPath)) || (item.pageRestriction.includes(PAGE_RESTRICTIONS.lobby) && isLobbyPage(currentPath)) || (item.pageRestriction.includes(PAGE_RESTRICTIONS.show) && isShowPage(currentPath)) || - (item.pageRestriction.includes(PAGE_RESTRICTIONS.customPage) && isCustomPage(currentPath)); + (item.pageRestriction.includes(PAGE_RESTRICTIONS.badge) && hasSummitHallCheckedIn) || + (item.pageRestriction.includes(PAGE_RESTRICTIONS.customPage) && isCustomPage(currentPath)) + ; return item.display && meetsUserRequirement(item.userRequirement) && diff --git a/src/content/navbar/index.json b/src/content/navbar/index.json index 348cf82a..e13955d9 100644 --- a/src/content/navbar/index.json +++ b/src/content/navbar/index.json @@ -9,6 +9,15 @@ "ANY" ] }, + { + "title": "Show Badge QR", + "link": "/a/badge", + "display": true, + "requiresAuth": true, + "pageRestriction": [ + "BADGE" + ] + }, { "title": "My Tickets", "link": "/a/my-tickets", diff --git a/src/pages/a/[...].js b/src/pages/a/[...].js index 8e04658d..5951bcad 100644 --- a/src/pages/a/[...].js +++ b/src/pages/a/[...].js @@ -15,12 +15,14 @@ import ShowOpenRoute from "../../routes/ShowOpenRoute"; import WithBadgeRoute from "../../routes/WithBadgeRoute"; import PosterDetailPage from "../../templates/poster-detail-page"; import MyTicketsPage from "../../templates/my-tickets-page"; +import BadgePage from "../../templates/badge-page"; import withRealTimeUpdates from "../../utils/real_time_updates/withRealTimeUpdates"; import withFeedsWorker from "../../utils/withFeedsWorker"; import Seo from "../../components/Seo"; import Link from "../../components/Link"; import { titleFromPathname } from "../../utils/urlFormating"; import {graphql} from "gatsby"; +import WithCheckedBadgeRoute from "../../routes/WithCheckedBadgeRoute"; const mySchedulePage = ({ location, summitPhase,isLoggedUser, user, allowClick, title, key }) => { return { { mySchedulePageJson.needsTicketAuthz && mySchedulePage({location, summitPhase,isLoggedUser, user, allowClick, title: mySchedulePageJson.title, key: mySchedulePageJson.key }) } + + + - + diff --git a/src/routes/WithCheckedBadgeRoute.js b/src/routes/WithCheckedBadgeRoute.js new file mode 100644 index 00000000..88c4aeaf --- /dev/null +++ b/src/routes/WithCheckedBadgeRoute.js @@ -0,0 +1,41 @@ +import React, {useEffect, useState, useMemo} from "react"; +import {connect} from "react-redux"; +import {navigate} from "gatsby"; +import { userHasCheckedInBadge } from "../utils/authorizedGroups"; + +/** + * + * @param children + * @param isLoggedIn + * @param location + * @param userProfile + * @returns {JSX.Element|null|*} + * @constructor + */ +const WithCheckedBadge = ({ + children, + isLoggedIn, + location, + userProfile +}) => { + + const hasCheckedInBadge = userHasCheckedInBadge(userProfile.summit_tickets); + + if (!isLoggedIn) { + navigate("/", {state: {backUrl: `${location.pathname}`,},}); + return null; + } + + // has no checked badge -> redirect + if (!hasCheckedInBadge) { + navigate("/", {state: {backUrl: `${location.pathname}`,},}); + } + + return children; +}; + +const mapStateToProps = ({userState}) => ({ + userProfile: userState.userProfile +}); + +export default connect(mapStateToProps, {})(WithCheckedBadge); diff --git a/src/templates/badge-page.js b/src/templates/badge-page.js new file mode 100644 index 00000000..78fdcf06 --- /dev/null +++ b/src/templates/badge-page.js @@ -0,0 +1,99 @@ +import React, { useState, useEffect } from 'react' +import PropTypes from 'prop-types' +import { connect } from 'react-redux' + +import Dropdown from 'openstack-uicore-foundation/lib/components/inputs/dropdown' +import QRCode from "react-qr-code"; + +import Layout from '../components/Layout' +import withOrchestra from "../utils/widgetOrchestra"; +import { userHasCheckedInBadge } from '../utils/authorizedGroups'; + +export const BadgePageTemplate = ({ user }) => { + + const hasBadgeChecked = userHasCheckedInBadge(user.summit_tickets); + + const [currentBadge, setCurrentBadge] = useState(null); + const [userBadges, setUserBadges] = useState([]); + const [badgesDDL, setBadgeDDL] = useState([]); + + useEffect(() => { + setUserBadges(user.summit_tickets || []); + const formattedTickets = user?.summit_tickets.map(e => ({ label: e.number, value: e.id })); + setBadgeDDL(formattedTickets || []); + }, []); + + useEffect(() => { + const firstTicket = userBadges.find(e => e.qr_code); + setCurrentBadge(firstTicket); + }, [userBadges]); + + const handleBadgeChange = (ev) => { + const { target: { value } } = ev; + const newBadge = user.summit_tickets.find(e => e.id === value); + setCurrentBadge(newBadge); + } + + return ( +
+ {hasBadgeChecked && + <> +

Badge QR

+
+
+ +
+
+
+
+ {currentBadge && + + } +
+
+ + } +
+ ) +}; + +const OrchestedTemplate = withOrchestra(BadgePageTemplate); + +const BadgePage = ( + { + location, + user, + } +) => { + return ( + + + + ) +}; + +BadgePage.propTypes = { + user: PropTypes.object, +}; + +BadgePageTemplate.propTypes = { + user: PropTypes.object +}; + +const mapStateToProps = ({ userState }) => ({ + user: userState.userProfile, +}); + +export default connect(mapStateToProps, {})(BadgePage); \ No newline at end of file diff --git a/src/utils/authorizedGroups.js b/src/utils/authorizedGroups.js index 333493f0..6fdad347 100644 --- a/src/utils/authorizedGroups.js +++ b/src/utils/authorizedGroups.js @@ -53,3 +53,7 @@ export const filterEventsByAccessLevels = (originalEvents , user) => { return isAuthorizedBadge(ev, summitTickets); }); } + +export const userHasCheckedInBadge = (summitTickets) => { + return summitTickets.some(t => t.owner.summit_hall_checked_in === true); +} \ No newline at end of file From 7a31c5378c5e78cd8acb77963c2b0090986e5d9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Castillo?= Date: Thu, 15 Aug 2024 17:43:23 -0300 Subject: [PATCH 2/6] Adjust badge qr page, add cms setting to enable/disable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tomás Castillo --- .../badgeQrPage/index.js | 23 ++++++ .../badgeQrPage/typeDefs.js | 6 ++ .../defaultPagesCollection/index.js | 4 +- .../defaultPagesCollection/typeDefs.js | 4 +- src/content/badge-qr-page/index.json | 1 + src/pages/a/[...].js | 15 +++- src/templates/badge-page.js | 76 +++++++++---------- src/utils/filePath.js | 2 + 8 files changed, 84 insertions(+), 47 deletions(-) create mode 100644 src/cms/config/collections/defaultPagesCollection/badgeQrPage/index.js create mode 100644 src/cms/config/collections/defaultPagesCollection/badgeQrPage/typeDefs.js create mode 100644 src/content/badge-qr-page/index.json diff --git a/src/cms/config/collections/defaultPagesCollection/badgeQrPage/index.js b/src/cms/config/collections/defaultPagesCollection/badgeQrPage/index.js new file mode 100644 index 00000000..1d743705 --- /dev/null +++ b/src/cms/config/collections/defaultPagesCollection/badgeQrPage/index.js @@ -0,0 +1,23 @@ +import { + booleanField +} from "../../../fields"; + +import { + BADGE_QR_PAGE_FILE_PATH +} from "@utils/filePath"; + +const badgeQrPage = { + label: "Badge QR Page", + name: "badge-qr-page", + file: BADGE_QR_PAGE_FILE_PATH, + fields: [ + booleanField({ + label: "Enable Badge QR Page", + name: "enabled", + required: false + }) + ] +}; + +export default badgeQrPage; + \ No newline at end of file diff --git a/src/cms/config/collections/defaultPagesCollection/badgeQrPage/typeDefs.js b/src/cms/config/collections/defaultPagesCollection/badgeQrPage/typeDefs.js new file mode 100644 index 00000000..910bc4dd --- /dev/null +++ b/src/cms/config/collections/defaultPagesCollection/badgeQrPage/typeDefs.js @@ -0,0 +1,6 @@ + +module.exports = ` + type BadgeQrPageJson implements Node { + enabled: Boolean + } +`; \ No newline at end of file diff --git a/src/cms/config/collections/defaultPagesCollection/index.js b/src/cms/config/collections/defaultPagesCollection/index.js index a715aead..d45c1c6a 100644 --- a/src/cms/config/collections/defaultPagesCollection/index.js +++ b/src/cms/config/collections/defaultPagesCollection/index.js @@ -7,6 +7,7 @@ import lobbyPage from "./lobbyPage"; import expoHallPage from "./expoHallPage"; import invitationsRejectPage from "./invitationsRejectPage"; import mySchedulePage from "./mySchedulePage"; +import badgeQrPage from "./badgeQrPage"; const defaultPagesCollection = { ...collectionDefaults({ @@ -18,7 +19,8 @@ const defaultPagesCollection = { lobbyPage, expoHallPage, invitationsRejectPage, - mySchedulePage + mySchedulePage, + badgeQrPage ] }; diff --git a/src/cms/config/collections/defaultPagesCollection/typeDefs.js b/src/cms/config/collections/defaultPagesCollection/typeDefs.js index 3861514e..b7e06bc4 100644 --- a/src/cms/config/collections/defaultPagesCollection/typeDefs.js +++ b/src/cms/config/collections/defaultPagesCollection/typeDefs.js @@ -3,11 +3,13 @@ const lobbyPageTypeDefs = require("./lobbyPage/typeDefs"); const expoHallPageTypeDefs = require("./expoHallPage/typeDefs"); const invitationsRejectPageTypeDefs = require("./invitationsRejectPage/typeDefs"); const mySchedulePageTypeDefs = require("./mySchedulePage/typeDefs"); +const badgeQrPageTypeDefs = require("./badgeQrPage/typeDefs") module.exports = [ marketingPageTypeDefs, lobbyPageTypeDefs, expoHallPageTypeDefs, invitationsRejectPageTypeDefs, - mySchedulePageTypeDefs + mySchedulePageTypeDefs, + badgeQrPageTypeDefs ].join(""); diff --git a/src/content/badge-qr-page/index.json b/src/content/badge-qr-page/index.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/src/content/badge-qr-page/index.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/src/pages/a/[...].js b/src/pages/a/[...].js index 5951bcad..d34ca83f 100644 --- a/src/pages/a/[...].js +++ b/src/pages/a/[...].js @@ -58,13 +58,18 @@ export const appQuery = graphql` key needsTicketAuthz } + badgeQrPageJson { + enabled + } } `; const App = ({ isLoggedUser, user, summitPhase, allowClick = true, data }) => { - const { mySchedulePageJson } = data; + const { mySchedulePageJson, badgeQrPageJson } = data; + + console.log("CHECK!", badgeQrPageJson); return ( @@ -90,9 +95,11 @@ const App = ({ isLoggedUser, user, summitPhase, allowClick = true, data }) => { { mySchedulePageJson.needsTicketAuthz && mySchedulePage({location, summitPhase,isLoggedUser, user, allowClick, title: mySchedulePageJson.title, key: mySchedulePageJson.key }) } - - - + {badgeQrPageJson.enabled && + + + + } diff --git a/src/templates/badge-page.js b/src/templates/badge-page.js index 78fdcf06..9ad84851 100644 --- a/src/templates/badge-page.js +++ b/src/templates/badge-page.js @@ -6,70 +6,64 @@ import Dropdown from 'openstack-uicore-foundation/lib/components/inputs/dropdown import QRCode from "react-qr-code"; import Layout from '../components/Layout' -import withOrchestra from "../utils/widgetOrchestra"; import { userHasCheckedInBadge } from '../utils/authorizedGroups'; export const BadgePageTemplate = ({ user }) => { const hasBadgeChecked = userHasCheckedInBadge(user.summit_tickets); - const [currentBadge, setCurrentBadge] = useState(null); - const [userBadges, setUserBadges] = useState([]); + const [currentTicket, setCurrentTicket] = useState(null); + const [userTickets, setUserTickets] = useState([]); const [badgesDDL, setBadgeDDL] = useState([]); useEffect(() => { - setUserBadges(user.summit_tickets || []); + setUserTickets(user.summit_tickets || []); const formattedTickets = user?.summit_tickets.map(e => ({ label: e.number, value: e.id })); setBadgeDDL(formattedTickets || []); }, []); useEffect(() => { - const firstTicket = userBadges.find(e => e.qr_code); - setCurrentBadge(firstTicket); - }, [userBadges]); + const firstTicket = userTickets.find(e => e.qr_code); + setCurrentTicket(firstTicket); + }, [userTickets]); - const handleBadgeChange = (ev) => { + const handleTicketChange = (ev) => { const { target: { value } } = ev; - const newBadge = user.summit_tickets.find(e => e.id === value); - setCurrentBadge(newBadge); + const newTicket = user.summit_tickets.find(e => e.id === value); + setCurrentTicket(newTicket); } return (
- {hasBadgeChecked && - <> -

Badge QR

-
-
- -
-
-
-
- {currentBadge && - - } -
-
- - } + +

Badge QR

+
+
+ +
+
+
+
+ {currentTicket && currentTicket.badge.qr_code && + + } +
+
) }; -const OrchestedTemplate = withOrchestra(BadgePageTemplate); - const BadgePage = ( { location, @@ -78,7 +72,7 @@ const BadgePage = ( ) => { return ( - ) diff --git a/src/utils/filePath.js b/src/utils/filePath.js index 1971c41c..69f01b2f 100644 --- a/src/utils/filePath.js +++ b/src/utils/filePath.js @@ -38,6 +38,7 @@ const MARKETING_SETTINGS_FILE_PATH = `${DATA_DIR_PATH}/marketing-settings.json`; const MAINTENANCE_PATH_NAME = `maintenance`; const EXPO_HALL_PAGE_FILE_PATH = `${STATIC_CONTENT_DIR_PATH}/expo-hall-page/index.json`; const INVITATIONS_REJECT_PAGE_FILE_PATH = `${STATIC_CONTENT_DIR_PATH}/invitations-reject-page/index.json`; +const BADGE_QR_PAGE_FILE_PATH = `${STATIC_CONTENT_DIR_PATH}/badge-qr-page/index.json`; const SPONSORS_FILE_NAME = "sponsors.json"; const SPONSORS_FILE_PATH = `${STATIC_CONTENT_DIR_PATH}/${SPONSORS_FILE_NAME}`; const CMS_FONT_FILE_PATH = "/static/fonts/" @@ -94,6 +95,7 @@ exports.MARKETING_SETTINGS_FILE_PATH = MARKETING_SETTINGS_FILE_PATH; exports.MAINTENANCE_PATH_NAME = MAINTENANCE_PATH_NAME; exports.EXPO_HALL_PAGE_FILE_PATH = EXPO_HALL_PAGE_FILE_PATH; exports.INVITATIONS_REJECT_PAGE_FILE_PATH = INVITATIONS_REJECT_PAGE_FILE_PATH; +exports.BADGE_QR_PAGE_FILE_PATH = BADGE_QR_PAGE_FILE_PATH; exports.SPONSORS_FILE_PATH = SPONSORS_FILE_PATH; exports.CMS_FONT_FILE_PATH = CMS_FONT_FILE_PATH; exports.PAYMENTS_FILE_PATH = PAYMENTS_FILE_PATH; From c13ecef4aba7a634a987fb6f6bd8bc59bd210d6c Mon Sep 17 00:00:00 2001 From: smarcet Date: Wed, 4 Sep 2024 12:16:30 -0300 Subject: [PATCH 3/6] fix: missing ref --- src/components/Navbar/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Navbar/index.js b/src/components/Navbar/index.js index 7183640b..8952128d 100644 --- a/src/components/Navbar/index.js +++ b/src/components/Navbar/index.js @@ -4,7 +4,7 @@ import { connect } from "react-redux"; import { navigate } from "gatsby"; import NavbarTemplate from "./template"; -import { userHasAccessLevel, VIRTUAL_ACCESS_LEVEL } from "@utils/authorizedGroups"; +import { userHasAccessLevel, VIRTUAL_ACCESS_LEVEL, userHasCheckedInBadge } from "@utils/authorizedGroups"; import { getDefaultLocation } from "@utils/loginUtils"; import { PHASES } from "@utils/phasesUtils"; From 308163bf72539c3144381f2e78a461c18068d50b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Castillo?= Date: Wed, 4 Sep 2024 16:02:41 -0300 Subject: [PATCH 4/6] Rename routes component, adjust validations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tomás Castillo --- src/pages/a/[...].js | 6 +++--- ...CheckedBadgeRoute.js => WithAttendeeCheckedInRoute.js} | 8 ++++---- src/templates/badge-page.js | 4 +++- 3 files changed, 10 insertions(+), 8 deletions(-) rename src/routes/{WithCheckedBadgeRoute.js => WithAttendeeCheckedInRoute.js} (77%) diff --git a/src/pages/a/[...].js b/src/pages/a/[...].js index d34ca83f..d5ea58d0 100644 --- a/src/pages/a/[...].js +++ b/src/pages/a/[...].js @@ -22,7 +22,7 @@ import Seo from "../../components/Seo"; import Link from "../../components/Link"; import { titleFromPathname } from "../../utils/urlFormating"; import {graphql} from "gatsby"; -import WithCheckedBadgeRoute from "../../routes/WithCheckedBadgeRoute"; +import WithAttendeeCheckedInRoute from "../../routes/WithAttendeeCheckedInRoute"; const mySchedulePage = ({ location, summitPhase,isLoggedUser, user, allowClick, title, key }) => { return { { mySchedulePageJson.needsTicketAuthz && mySchedulePage({location, summitPhase,isLoggedUser, user, allowClick, title: mySchedulePageJson.title, key: mySchedulePageJson.key }) } {badgeQrPageJson.enabled && - + - + } diff --git a/src/routes/WithCheckedBadgeRoute.js b/src/routes/WithAttendeeCheckedInRoute.js similarity index 77% rename from src/routes/WithCheckedBadgeRoute.js rename to src/routes/WithAttendeeCheckedInRoute.js index 88c4aeaf..8e40981d 100644 --- a/src/routes/WithCheckedBadgeRoute.js +++ b/src/routes/WithAttendeeCheckedInRoute.js @@ -12,14 +12,14 @@ import { userHasCheckedInBadge } from "../utils/authorizedGroups"; * @returns {JSX.Element|null|*} * @constructor */ -const WithCheckedBadge = ({ +const withAttendeeCheckedIn = ({ children, isLoggedIn, location, userProfile }) => { - const hasCheckedInBadge = userHasCheckedInBadge(userProfile.summit_tickets); + const isAttendeeCheckedIn = userHasCheckedInBadge(userProfile.summit_tickets); if (!isLoggedIn) { navigate("/", {state: {backUrl: `${location.pathname}`,},}); @@ -27,7 +27,7 @@ const WithCheckedBadge = ({ } // has no checked badge -> redirect - if (!hasCheckedInBadge) { + if (!isAttendeeCheckedIn) { navigate("/", {state: {backUrl: `${location.pathname}`,},}); } @@ -38,4 +38,4 @@ const mapStateToProps = ({userState}) => ({ userProfile: userState.userProfile }); -export default connect(mapStateToProps, {})(WithCheckedBadge); +export default connect(mapStateToProps, {})(withAttendeeCheckedIn); diff --git a/src/templates/badge-page.js b/src/templates/badge-page.js index 9ad84851..7676f925 100644 --- a/src/templates/badge-page.js +++ b/src/templates/badge-page.js @@ -17,7 +17,9 @@ export const BadgePageTemplate = ({ user }) => { const [badgesDDL, setBadgeDDL] = useState([]); useEffect(() => { - setUserTickets(user.summit_tickets || []); + // filter tickets with a badge that has access level IN_PERSON + const inPersonTickets = user.userProfile.summit_tickets.filter(t => t.badge?.type?.access_levels.some((al) => al.name.includes("IN_PERSON"))); + setUserTickets(inPersonTickets); const formattedTickets = user?.summit_tickets.map(e => ({ label: e.number, value: e.id })); setBadgeDDL(formattedTickets || []); }, []); From a85d3d538ca6bb09c1d416279cea4c30abb5721f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Castillo?= Date: Wed, 4 Sep 2024 18:08:44 -0300 Subject: [PATCH 5/6] Adjusting ddl styling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tomás Castillo --- src/templates/badge-page.js | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/src/templates/badge-page.js b/src/templates/badge-page.js index 7676f925..cecc3b40 100644 --- a/src/templates/badge-page.js +++ b/src/templates/badge-page.js @@ -18,9 +18,9 @@ export const BadgePageTemplate = ({ user }) => { useEffect(() => { // filter tickets with a badge that has access level IN_PERSON - const inPersonTickets = user.userProfile.summit_tickets.filter(t => t.badge?.type?.access_levels.some((al) => al.name.includes("IN_PERSON"))); + const inPersonTickets = user?.summit_tickets.filter(t => t.badge?.type?.access_levels.some((al) => al.name.includes("IN_PERSON"))); setUserTickets(inPersonTickets); - const formattedTickets = user?.summit_tickets.map(e => ({ label: e.number, value: e.id })); + const formattedTickets = inPersonTickets.map(e => ({ label: e.number, value: e.id })); setBadgeDDL(formattedTickets || []); }, []); @@ -40,19 +40,38 @@ export const BadgePageTemplate = ({ user }) => {

Badge QR

-
+
({ + ...base, + width: "100%", + }), + control: (base) => ({ + ...base, + width: "100%", + }), + option: (base) => ({ + ...base, + width: 'max-content', + minWidth: '100%' + }), + menu: (base) => ({ + ...base, + maxWidth: "100%", + }), + }} />
- {currentTicket && currentTicket.badge.qr_code && + {currentTicket && Date: Thu, 5 Sep 2024 10:39:03 -0300 Subject: [PATCH 6/6] Add badge page restriction to constants MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tomás Castillo --- src/utils/pageAccessConstants.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/utils/pageAccessConstants.js b/src/utils/pageAccessConstants.js index 1a0cdb17..ba1adc39 100644 --- a/src/utils/pageAccessConstants.js +++ b/src/utils/pageAccessConstants.js @@ -10,6 +10,7 @@ const PAGE_RESTRICTIONS = { marketing: "MARKETING", lobby: "LOBBY", show: "SHOW", + badge: "BADGE", customPage: "CUSTOM_PAGE" };