import React, { useCallback, useEffect, useMemo, useState } from 'react'; import PropTypes from 'prop-types'; import { EVENT_BUS_TYPE, PRIVATE_COLUMN_KEY, VIEW_TYPE } from '../../../constants'; import { FilterSetter, GalleryGroupBySetter, GallerySliderSetter, MapTypeSetter, SortSetter } from '../../data-process-setter'; import { gettext } from '../../../../utils/constants'; const MapViewToolBar = ({ isCustomPermission, readOnly, view: oldView, collaborators, modifyFilters, onToggleDetail, }) => { const [showGalleryToolbar, setShowGalleryToolbar] = useState(false); const [view, setView] = useState(oldView); const viewType = useMemo(() => VIEW_TYPE.MAP, []); const viewColumns = useMemo(() => { if (!oldView) return []; return oldView.columns; }, [oldView]); const viewID = useMemo(() => oldView._id, [oldView]); const filterColumns = useMemo(() => { return viewColumns && viewColumns.filter(c => c.key !== PRIVATE_COLUMN_KEY.FILE_TYPE); }, [viewColumns]); const onToggle = useCallback((value) => { setShowGalleryToolbar(value); }, []); const modifySorts = useCallback((sorts) => { window.sfMetadataContext.eventBus.dispatch(EVENT_BUS_TYPE.UPDATE_SERVER_VIEW, { sorts }); }, []); const resetView = useCallback(view => { setView(view); }, []); useEffect(() => { setShowGalleryToolbar(false); const unsubscribeToggle = window.sfMetadataContext.eventBus.subscribe(EVENT_BUS_TYPE.TOGGLE_VIEW_TOOLBAR, onToggle); const unsubscribeView = window.sfMetadataContext.eventBus.subscribe(EVENT_BUS_TYPE.RESET_VIEW, resetView); return () => { unsubscribeToggle && unsubscribeToggle(); unsubscribeView && unsubscribeView(); }; // eslint-disable-next-line react-hooks/exhaustive-deps }, [viewID]); if (showGalleryToolbar) { return ( <>
{!isCustomPermission && (
)}
); } return ( <>
); }; MapViewToolBar.propTypes = { isCustomPermission: PropTypes.bool, readOnly: PropTypes.bool, collaborators: PropTypes.array, modifyFilters: PropTypes.func, onToggleDetail: PropTypes.func, }; export default MapViewToolBar;