import React, { PureComponent } from 'react'; import { hot } from 'react-hot-loader'; import { connect } from 'react-redux'; import PageHeader from 'app/core/components/PageHeader/PageHeader'; import appEvents from 'app/core/app_events'; import { getNavModel } from 'app/core/selectors/navModel'; import { NavModel, StoreState, FolderState } from 'app/types'; import { getFolderByUid, setFolderTitle, saveFolder, deleteFolder } from './state/actions'; import { getLoadingNav } from './state/navModel'; export interface Props { navModel: NavModel; folderUid: string; folder: FolderState; getFolderByUid: typeof getFolderByUid; setFolderTitle: typeof setFolderTitle; saveFolder: typeof saveFolder; deleteFolder: typeof deleteFolder; } export class FolderSettingsPage extends PureComponent { componentDidMount() { this.props.getFolderByUid(this.props.folderUid); } onTitleChange = evt => { this.props.setFolderTitle(evt.target.value); }; onSave = async evt => { evt.preventDefault(); evt.stopPropagation(); await this.props.saveFolder(this.props.folder); }; onDelete = evt => { evt.stopPropagation(); evt.preventDefault(); appEvents.emit('confirm-modal', { title: 'Delete', text: `Do you want to delete this folder and all its dashboards?`, icon: 'fa-trash', yesText: 'Delete', onConfirm: () => { this.props.deleteFolder(this.props.folder.uid); }, }); }; render() { const { navModel, folder } = this.props; return (

Folder Settings

); } } const mapStateToProps = (state: StoreState) => { const uid = state.location.routeParams.uid; return { navModel: getNavModel(state.navIndex, `folder-settings-${uid}`, getLoadingNav(2)), folderUid: uid, folder: state.folder, }; }; const mapDispatchToProps = { getFolderByUid, saveFolder, setFolderTitle, deleteFolder, }; export default hot(module)(connect(mapStateToProps, mapDispatchToProps)(FolderSettingsPage));