![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /opt/mattermost/client/ |
Upload File : |
{"version":3,"file":"3635.437155480f9387e8f288.js","mappings":"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","sources":["webpack://mattermost-webapp/./src/components/drafts/drafts_link/drafts_tour_tip/drafts_tour_tip.tsx","webpack://mattermost-webapp/./src/components/drafts/drafts_link/drafts_link.tsx"],"sourcesContent":["// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport React, {memo, useCallback, useState} from 'react';\nimport {FormattedMessage} from 'react-intl';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {useHistory, useRouteMatch} from 'react-router-dom';\n\nimport {TourTip, useMeasurePunchouts} from '@mattermost/components';\n\nimport {Preferences} from 'mattermost-redux/constants';\n\nimport {setDraftsTourTipPreference} from 'actions/views/drafts';\nimport {showDraftsPulsatingDotAndTourTip} from 'selectors/drafts';\n\nimport Tag from 'components/widgets/tag/tag';\n\nconst title = (\n <span className='d-flex align-items-center'>\n <FormattedMessage\n id='drafts.tutorialTip.title'\n defaultMessage='Drafts'\n />\n <Tag\n variant='success'\n text={(\n <FormattedMessage\n id='tag.default.new'\n defaultMessage='NEW'\n />\n )}\n />\n </span>\n);\n\nconst screen = (\n <>\n <FormattedMessage\n id='drafts.tutorialTip.description'\n defaultMessage='With the new Drafts view, all of your unfinished messages are collected in one place. Return here to read, edit, or send draft messages.'\n />\n </>\n\n);\n\nconst prevBtn = (\n <FormattedMessage\n id='drafts.tutorial_tip.notNow'\n defaultMessage='Not now'\n />\n);\n\nconst nextBtn = (\n <FormattedMessage\n id='drafts.tutorial_tip.viewDrafts'\n defaultMessage='View drafts'\n />\n);\n\nconst DraftsTourTip = () => {\n const dispatch = useDispatch();\n const history = useHistory();\n\n const showTip = useSelector(showDraftsPulsatingDotAndTourTip);\n const {url} = useRouteMatch();\n const nextUrl = `${url}/drafts`;\n\n const [tipOpened, setTipOpened] = useState(showTip);\n\n const handleDismiss = useCallback((e: React.MouseEvent) => {\n e.stopPropagation();\n dispatch(setDraftsTourTipPreference({[Preferences.DRAFTS_TOUR_TIP_SHOWED]: true}));\n setTipOpened(false);\n }, []);\n\n const handleNext = useCallback(() => {\n dispatch(setDraftsTourTipPreference({[Preferences.DRAFTS_TOUR_TIP_SHOWED]: true}));\n setTipOpened(false);\n history.push(nextUrl);\n }, []);\n\n const handleOpen = useCallback((e: React.MouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n\n if (tipOpened) {\n dispatch(setDraftsTourTipPreference({[Preferences.DRAFTS_TOUR_TIP_SHOWED]: true}));\n setTipOpened(false);\n } else {\n setTipOpened(true);\n }\n }, []);\n\n const overlayPunchOut = useMeasurePunchouts(['sidebar-drafts-button'], []);\n\n return (\n <>\n {\n (showTip) &&\n <TourTip\n show={tipOpened}\n screen={screen}\n title={title}\n overlayPunchOut={overlayPunchOut}\n placement='right-start'\n pulsatingDotPlacement='right'\n step={1}\n singleTip={true}\n showOptOut={false}\n interactivePunchOut={false}\n handleDismiss={handleDismiss}\n handleNext={handleNext}\n handleOpen={handleOpen}\n handlePrevious={handleDismiss}\n nextBtn={nextBtn}\n prevBtn={prevBtn}\n />\n }\n </>\n );\n};\n\nexport default memo(DraftsTourTip);\n","// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport classNames from 'classnames';\nimport React, {memo, useEffect, useMemo, useRef} from 'react';\nimport {FormattedMessage} from 'react-intl';\nimport {useSelector, useDispatch} from 'react-redux';\nimport {NavLink, useRouteMatch} from 'react-router-dom';\n\nimport {fetchTeamScheduledPosts} from 'mattermost-redux/actions/scheduled_posts';\nimport {syncedDraftsAreAllowedAndEnabled} from 'mattermost-redux/selectors/entities/preferences';\nimport {\n getScheduledPostsByTeamCount, hasScheduledPostError, isScheduledPostsEnabled,\n} from 'mattermost-redux/selectors/entities/scheduled_posts';\nimport {getCurrentTeamId} from 'mattermost-redux/selectors/entities/teams';\n\nimport {getDrafts} from 'actions/views/drafts';\nimport {makeGetDraftsCount} from 'selectors/drafts';\n\nimport DraftsTourTip from 'components/drafts/drafts_link/drafts_tour_tip/drafts_tour_tip';\nimport ChannelMentionBadge from 'components/sidebar/sidebar_channel/channel_mention_badge';\nimport WithTooltip from 'components/with_tooltip';\n\nimport {SCHEDULED_POST_URL_SUFFIX} from 'utils/constants';\n\nimport type {GlobalState} from 'types/store';\n\nconst getDraftsCount = makeGetDraftsCount();\n\nimport './drafts_link.scss';\n\nconst scheduleIcon = (\n <i\n data-testid='scheduledPostIcon'\n className='icon icon-draft-indicator icon-clock-send-outline'\n />\n);\n\nconst pencilIcon = (\n <i\n data-testid='draftIcon'\n className='icon icon-draft-indicator icon-pencil-outline'\n />\n);\n\nfunction DraftsLink() {\n const dispatch = useDispatch();\n\n const initialScheduledPostsLoaded = useRef(false);\n\n const syncedDraftsAllowedAndEnabled = useSelector(syncedDraftsAreAllowedAndEnabled);\n const draftCount = useSelector(getDraftsCount);\n const teamId = useSelector(getCurrentTeamId);\n const teamScheduledPostCount = useSelector((state: GlobalState) => getScheduledPostsByTeamCount(state, teamId, true));\n const isScheduledPostEnabled = useSelector(isScheduledPostsEnabled);\n\n const hasDrafts = draftCount > 0;\n const hasScheduledPosts = teamScheduledPostCount > 0;\n const itemsExist = hasDrafts || (isScheduledPostEnabled && hasScheduledPosts);\n\n const scheduledPostsHasError = useSelector((state: GlobalState) => hasScheduledPostError(state, teamId));\n\n const {url} = useRouteMatch();\n const isDraftUrlMatch = useRouteMatch('/:team/drafts');\n const isScheduledPostUrlMatch = useRouteMatch('/:team/' + SCHEDULED_POST_URL_SUFFIX);\n\n const urlMatches = isDraftUrlMatch || isScheduledPostUrlMatch;\n\n useEffect(() => {\n if (syncedDraftsAllowedAndEnabled) {\n dispatch(getDrafts(teamId));\n }\n }, [teamId, syncedDraftsAllowedAndEnabled, dispatch]);\n\n useEffect(() => {\n const loadDMsAndGMs = !initialScheduledPostsLoaded.current;\n\n if (isScheduledPostEnabled) {\n dispatch(fetchTeamScheduledPosts(teamId, loadDMsAndGMs));\n }\n\n initialScheduledPostsLoaded.current = true;\n }, [dispatch, isScheduledPostEnabled, teamId]);\n\n const showScheduledPostCount = isScheduledPostEnabled && teamScheduledPostCount > 0;\n\n const tooltipText = useMemo(() => {\n const lineBreaks = (x: React.ReactNode) => {\n if (draftCount > 0 && teamScheduledPostCount > 0) {\n return (<><br/>{x}</>);\n }\n\n return null;\n };\n\n return (\n <FormattedMessage\n id='drafts.tooltipText'\n defaultMessage=''\n values={{\n draftCount,\n scheduledPostCount: teamScheduledPostCount,\n br: lineBreaks,\n }}\n />\n );\n }, [draftCount, teamScheduledPostCount]);\n\n if (!itemsExist && !urlMatches) {\n return null;\n }\n\n return (\n <ul className='SidebarDrafts NavGroupContent nav nav-pills__container'>\n <li\n className='SidebarChannel'\n tabIndex={-1}\n id='sidebar-drafts-button'\n >\n <NavLink\n to={`${url}/drafts`}\n id='sidebarItem_drafts'\n activeClassName='active'\n draggable='false'\n className='SidebarLink sidebar-item'\n tabIndex={0}\n >\n <i\n data-testid='sendPostIcon'\n className='icon icon-send-post icon-send'\n />\n <div className='SidebarChannelLinkLabel_wrapper'>\n <span className='SidebarChannelLinkLabel sidebar-item__name'>\n <FormattedMessage\n id='drafts.sidebarLink'\n defaultMessage='Drafts'\n />\n </span>\n </div>\n <WithTooltip\n title={tooltipText}\n >\n <div>\n {\n draftCount > 0 &&\n <ChannelMentionBadge\n unreadMentions={draftCount}\n icon={pencilIcon}\n />\n }\n\n {\n showScheduledPostCount &&\n <ChannelMentionBadge\n unreadMentions={teamScheduledPostCount}\n icon={scheduleIcon}\n className={classNames('scheduledPostBadge', {persistent: scheduledPostsHasError})}\n hasUrgent={scheduledPostsHasError}\n />\n }\n </div>\n </WithTooltip>\n </NavLink>\n <DraftsTourTip/>\n </li>\n </ul>\n );\n}\n\nexport default memo(DraftsLink);\n"],"names":["title","React","className","FormattedMessage","id","defaultMessage","Tag","variant","text","screen","prevBtn","nextBtn","DraftsTourTip","dispatch","useDispatch","history","useHistory","showTip","useSelector","showDraftsPulsatingDotAndTourTip","url","useRouteMatch","nextUrl","concat","tipOpened","setTipOpened","useState","handleDismiss","useCallback","e","stopPropagation","setDraftsTourTipPreference","Preferences","DRAFTS_TOUR_TIP_SHOWED","handleNext","push","handleOpen","preventDefault","overlayPunchOut","useMeasurePunchouts","TourTip","show","placement","pulsatingDotPlacement","step","singleTip","showOptOut","interactivePunchOut","handlePrevious","memo","getDraftsCount","makeGetDraftsCount","scheduleIcon","pencilIcon","DraftsLink","initialScheduledPostsLoaded","useRef","syncedDraftsAllowedAndEnabled","syncedDraftsAreAllowedAndEnabled","draftCount","teamId","getCurrentTeamId","teamScheduledPostCount","state","getScheduledPostsByTeamCount","isScheduledPostEnabled","isScheduledPostsEnabled","itemsExist","scheduledPostsHasError","hasScheduledPostError","isDraftUrlMatch","isScheduledPostUrlMatch","SCHEDULED_POST_URL_SUFFIX","urlMatches","useEffect","getDrafts","loadDMsAndGMs","current","fetchTeamScheduledPosts","showScheduledPostCount","tooltipText","useMemo","values","scheduledPostCount","br","x","tabIndex","NavLink","to","activeClassName","draggable","WithTooltip","ChannelMentionBadge","unreadMentions","icon","classNames","persistent","hasUrgent"],"sourceRoot":""}