* fix(tracker): fix assist typings * fix(tracker): fix assist typings * change(ui) - preferences - removed old * change(ui) - preferences - wip * change(ui) - preferences - list * change(ui) - right box mardings * change(ui) - preferences - integration item paddings * change(ui) - preferences - integration icons * change(ui) - preferences - integration icons * change(ui) - preferences - integration - check status * change(ui) - preferences - integration - check status * change(ui) - preferences - metadata - move the delete button inside the modal * change(ui) - preferences - webhooks - modal and delete btn changes * change(ui) - preferences - modalContext updates * change(ui) - input field forward refs * change(ui) - metadata - modal * change(ui) - metadata - set deleting item to null * change(ui) - integrations * change(ui) - hoc withcopy * change(ui) - projects * change(ui) - users list modal * change(ui) - projects remove border for the last * change(ui) - integrations new api changes * change(ui) - github and jira changes * change(ui) - github and jira changes Co-authored-by: sylenien <nikita@openreplay.com>
48 lines
1.3 KiB
TypeScript
48 lines
1.3 KiB
TypeScript
import React, { useEffect } from 'react';
|
|
import SlackChannelList from './SlackChannelList/SlackChannelList';
|
|
import { fetchList } from 'Duck/integrations/slack';
|
|
import { connect } from 'react-redux';
|
|
import SlackAddForm from './SlackAddForm';
|
|
import { useModal } from 'App/components/Modal';
|
|
|
|
interface Props {
|
|
onEdit: (integration: any) => void;
|
|
istance: any;
|
|
fetchList: any;
|
|
}
|
|
const SlackForm = (props: Props) => {
|
|
const { istance } = props;
|
|
const { hideModal } = useModal();
|
|
const [active, setActive] = React.useState(false);
|
|
|
|
const onEdit = () => {
|
|
setActive(true);
|
|
};
|
|
|
|
useEffect(() => {
|
|
props.fetchList();
|
|
}, []);
|
|
|
|
return (
|
|
<div className="bg-white h-screen overflow-y-auto flex items-start" style={{ width: active ? '650px' : '350px' }}>
|
|
<div style={{ width: '350px' }}>
|
|
<h3 className="p-5 text-2xl">Slack</h3>
|
|
<SlackChannelList onEdit={onEdit} />
|
|
</div>
|
|
{active && (
|
|
<div className="border-l h-full">
|
|
<SlackAddForm onClose={() => setActive(false)} />
|
|
</div>
|
|
)}
|
|
</div>
|
|
);
|
|
};
|
|
|
|
SlackForm.displayName = 'SlackForm';
|
|
|
|
export default connect(
|
|
(state: any) => ({
|
|
istance: state.getIn(['slack', 'instance']),
|
|
}),
|
|
{ fetchList }
|
|
)(SlackForm);
|