{"version":3,"file":"static/js/Builder.61f81719.js","sources":["webpack://@jotforminc/portal/./src/modules/Builder/index.js"],"sourcesContent":["import React, {\n useCallback, useEffect, useMemo, useRef\n} from 'react';\nimport { string, func } from 'prop-types';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { StorageHelper } from '@jotforminc/storage-helper';\n\nimport { renderable } from '../../constants/propTypes';\nimport SELECTORS from '../../store/selectors';\nimport {\n APP_MODES,\n APP_PREVIEW_STATES,\n APP_PREVIEW_URL_HASH,\n WINDOW_SQUEEZE_VALUE\n} from '../../constants';\nimport * as ACTION_CREATORS from '../../store/actionCreators';\nimport { ScBuilderWrapper } from '../../styles/scGeneral';\nimport { isInJotformKiosk, readURLHash } from '../../utils';\nimport Preview from './components/Preview';\nimport { getLatestVersion, isAppGrandfathered } from '../../properties';\nimport SubHeaderContainer from './components/SubHeader';\nimport { useIfMobileSettings } from '../../utils/navigation';\nimport AbTestsSingleton from '../../utils/abtests';\n\nconst Builder = ({ children, appID, navigate }) => {\n const dispatch = useDispatch();\n const storePortalID = useSelector(SELECTORS.getAppID);\n const shouldSqueeze = useSelector(SELECTORS.shouldSqueezeSelector);\n const appVersion = useSelector(SELECTORS.getAppVersionSelector);\n const appPreviewStatus = useSelector(SELECTORS.appPreviewStatusSelector);\n const announcementV1Ref = useRef();\n const user = useSelector(SELECTORS.getUser);\n\n const openAnnouncementV1Modal = () => announcementV1Ref?.current?.show();\n const checkV1AnnouncementSeen = useCallback(() => {\n return StorageHelper.hasKeyValuePair({ key: 'jf_apps_announcement_v1_seen', value: 'yes' });\n }, []);\n\n const isV1AnnouncementSeen = useMemo(() => checkV1AnnouncementSeen(), []);\n const isGrandfathered = useMemo(() => isAppGrandfathered(appVersion), [appVersion]);\n\n const isAppPreviewMode = appPreviewStatus !== APP_PREVIEW_STATES.IDLE;\n const isAppPreviewReady = appPreviewStatus === APP_PREVIEW_STATES.READY;\n\n useEffect(() => {\n // dont show modal if in kiosk app\n if (isInJotformKiosk()) return;\n // Show modal until the app is migrated\n const latestVersion = getLatestVersion();\n if (isGrandfathered || (latestVersion === '1' && !isV1AnnouncementSeen)) {\n openAnnouncementV1Modal();\n }\n }, [isGrandfathered, isV1AnnouncementSeen]);\n\n useEffect(() => {\n dispatch(ACTION_CREATORS.setModeAction(APP_MODES.builder));\n if (storePortalID !== appID) {\n dispatch(ACTION_CREATORS.fetchPortalAction(appID));\n }\n }, [appID, storePortalID]);\n\n const handleResize = () => {\n if ((global.innerWidth <= WINDOW_SQUEEZE_VALUE) !== shouldSqueeze) {\n dispatch(ACTION_CREATORS.shouldSqueezeAction(!shouldSqueeze));\n }\n };\n\n useEffect(() => {\n window.addEventListener('resize', handleResize);\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n }, [shouldSqueeze]);\n\n useEffect(() => {\n dispatch(ACTION_CREATORS.initAppElementPanelAbTest());\n const urlState = readURLHash();\n if (urlState === APP_PREVIEW_URL_HASH) {\n dispatch(ACTION_CREATORS.appPreviewStatusAction(APP_PREVIEW_STATES.LOADING));\n }\n }, []);\n\n useEffect(() => {\n AbTestsSingleton.user = user;\n }, [user]);\n\n const isMobileSettings = useIfMobileSettings();\n\n const renderChildren = !isAppPreviewMode;\n\n return (\n \n {!(isInJotformKiosk() || isMobileSettings) && (\n \n )}\n {renderChildren && children}\n {isAppPreviewMode && (\n \n )}\n \n );\n};\n\nBuilder.propTypes = {\n appID: string,\n children: renderable.isRequired,\n navigate: func\n};\n\nBuilder.defaultProps = {\n appID: '',\n navigate: f => f\n};\n\nexport default Builder;\n"],"names":["Builder","children","appID","navigate","dispatch","useDispatch","storePortalID","useSelector","SELECTORS","shouldSqueeze","appVersion","appPreviewStatus","announcementV1Ref","useRef","user","openAnnouncementV1Modal","_announcementV1Ref_current","checkV1AnnouncementSeen","useCallback","StorageHelper","isV1AnnouncementSeen","useMemo","isGrandfathered","isAppGrandfathered","isAppPreviewMode","APP_PREVIEW_STATES","isAppPreviewReady","useEffect","isInJotformKiosk","latestVersion","getLatestVersion","ACTION_CREATORS","APP_MODES","handleResize","global","WINDOW_SQUEEZE_VALUE","window","readURLHash","APP_PREVIEW_URL_HASH","AbTestsSingleton","isMobileSettings","useIfMobileSettings","ScBuilderWrapper","SubHeaderContainer","renderChildren","Preview","string","renderable","func","f"],"mappings":"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","debug_id":"ddcde598-16bc-5907-900d-b042d88f3e1a"}