0d9e14360ae0173bfcc2967edfdae9105e805a6a
[arvados-workbench2.git] / src / views-components / sharing-dialog / advanced-view-switch.tsx
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 import * as React from 'react';
6
7 export interface AdvancedViewSwitchInjectedProps {
8     toggleAdvancedView: () => void;
9     advancedViewOpen: boolean;
10 }
11
12 export const connectAdvancedViewSwitch = (Component: React.ComponentType<AdvancedViewSwitchInjectedProps>) =>
13     class extends React.Component<{}, { advancedViewOpen: boolean }> {
14
15         state = { advancedViewOpen: false };
16
17         toggleAdvancedView = () => {
18             this.setState(({ advancedViewOpen }) => ({ advancedViewOpen: !advancedViewOpen }));
19         }
20
21         render() {
22             return <Component {...this.state} {...this} />;
23         }
24     };
25