Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 11 additions & 7 deletions src/App.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,17 @@ import React, { useState } from 'react';
import { DragDropContext, Draggable, Droppable } from 'react-beautiful-dnd';
import { v4 as uuid } from 'uuid';
import Form from './form';
import VertFrom from './verticalform';
import { BrowserRouter,Route, Link } from "react-router-dom";
import 'bootstrap/dist/css/bootstrap.min.css';
import { Button, Col } from 'reactstrap';

const itemsFromBackend = [
export const itemsFromBackend = [
{id: uuid(), content: 'First Task'},
{id: uuid(), content: 'Second Task'},
]

const columnsFromBackend =
export const columnsFromBackend =
{
[uuid()]: {
name: 'Lead In',
Expand Down Expand Up @@ -40,6 +41,7 @@ const columnsFromBackend =
},
};


const onDragEnd = (result, columns, setColumns) => {
if (!result.destination) return;
const { source, destination } = result;
Expand Down Expand Up @@ -76,7 +78,7 @@ const onDragEnd = (result, columns, setColumns) => {
}
};

const handleAdd = (id, columns, setColumns, items, setItems) => {
export const handleAdd = (id, columns, setColumns, items, setItems) => {
const column = columns[id];
console.log(column);

Expand Down Expand Up @@ -111,10 +113,10 @@ function App() {
return (
<div style={{ display: 'flex', flexDirection: 'column', alignItems: 'center' }}>
<h2>{column.name}</h2>
<Button onClick={() => handleAdd(id, columns, setColumns, items, setItems)}>+</Button>
<Link to="/form" onClick={() => handleAdd(id, columns, setColumns, items, setItems)}><Link component={Form}>+</Link></Link>

<div style={{ margin: 8 }}>
<Droppable droppableId={id} key={id}>
<Droppable droppableId={id} key={id} >
{(provided, snapshot) => {
return (
<div
Expand Down Expand Up @@ -146,9 +148,7 @@ function App() {
color: 'white',
...provided.draggableProps.style
}}>
<Link to="/form"></Link>
<h2>Name</h2>
<Route component={Form} path="/form" />
</div>
)
}}
Expand All @@ -160,13 +160,17 @@ function App() {
)
}}
</Droppable>

</div>
</div>
)

})}
</DragDropContext>
</div>
<div>

<Route component={VertFrom} />

</div>
</BrowserRouter>
Expand Down
15 changes: 12 additions & 3 deletions src/form.js
Original file line number Diff line number Diff line change
@@ -1,22 +1,31 @@
import React, { useState } from 'react';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter , Col, Row, Form, FormGroup, Label, Input} from 'reactstrap';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter , Col, Row, Form, FormGroup, Label, Input , Alert} from 'reactstrap';
import {itemsFromBackend as ifb , columnsFromBackend as cfb , handleAdd} from "./App";

const ModalExample = (props) => {
const {
className
} = props;



const [modal, setModal] = useState(false);

const toggle = () => setModal(!modal);

const closeBtn = <button className="close" onClick={toggle}>&times;</button>;

const check =() => { console.log(cfb);};

const [columns, setColumns] = useState(cfb);
const [items, setItems] = useState(ifb);


return (
<div>
<Button color="success" onClick={toggle}>+</Button>
<Modal isOpen={modal} toggle={toggle} className={className}>
<ModalHeader color='primary' toggle={toggle} close={closeBtn}>Add Lead</ModalHeader>
<Alert color="primary"><ModalHeader toggle={toggle} close={closeBtn}>Add Lead</ModalHeader></Alert>
<ModalBody>
<Form>
<Row form>
Expand Down Expand Up @@ -89,7 +98,7 @@ const ModalExample = (props) => {
</ModalBody>
<ModalFooter>
<Button color="success" onClick={toggle}>Save</Button>{' '}
<Button color="secondary" onClick={toggle}>Cancel</Button>
<Button color="danger" onClick={toggle}>Cancel</Button>
</ModalFooter>
</Modal>
</div>
Expand Down
99 changes: 99 additions & 0 deletions src/verticalform.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
import React, { Component ,useState } from 'react';
import {itemsFromBackend as ifb , columnsFromBackend as cfb , handleAdd} from "./App";
import { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd';


// const [columns, setColumns] = useState(cfb);
// const [items, setItems] = useState(ifb);

const getItems = count =>
Array.from({ length: count }, (v, k) => k).map(k => ({
id: `item-${k}`,
content: `item ${k}`,
}));

const reorder = (list, startIndex, endIndex) => {
const result = Array.from(list);
const [removed] = result.splice(startIndex, 1);
result.splice(endIndex, 0, removed);

return result;
};

const grid = 8;

const getListStyle = isDraggingOver => ({
background: isDraggingOver ? 'lightblue' : 'lightgrey',
display: 'flex',
padding: grid,
overflow: 'auto',
});

class App extends Component {
constructor(props) {
super(props);
this.state = {
items: getItems(3),
};
this.onDragEnd = this.onDragEnd.bind(this);
}

onDragEnd(result) {
// dropped outside the list
if (!result.destination) {
return;
}

const items = reorder(
this.state.items,
result.source.index,
result.destination.index
);

this.setState({
items,
});
}

render() {
return (
<DragDropContext onDragEnd={this.onDragEnd}>
<Droppable droppableId="droppable" direction="horizontal">
{(provided, snapshot) => (
<div
ref={provided.innerRef}
style={getListStyle(snapshot.isDraggingOver)}
{...provided.droppableProps}
>
{this.state.items.map((item, index) => (
<Draggable key={item.id} draggableId={item.id} index={index}>
{(provided, snapshot) => (
<div
ref={provided.innerRef}
{...provided.draggableProps}
{...provided.dragHandleProps}
style={{
userSelect: 'none',
padding: 16,
margin: '0 0 8px 0',
minHeight: '50px',
backgroundColor: snapshot.isDragging ? '#263B4A' : '#456C86',
color: 'white',
...provided.draggableProps.style
}}
>
<h2>Name</h2>
</div>
)}
</Draggable>
))}
{provided.placeholder}
</div>
)}
</Droppable>
</DragDropContext>
);
}
}

export default App;