Skip to content

Commit 40a94a0

Browse files
committed
debugging react-bootstrap-multiselect
1 parent 66d02dc commit 40a94a0

3 files changed

Lines changed: 82 additions & 1 deletion

File tree

frontend/package-lock.json

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frontend/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
"npm": "^11.4.1",
4242
"react": "^17.0.2",
4343
"react-bootstrap": "^2.8.0",
44+
"react-bootstrap-multiselect": "^2.4.1",
4445
"react-csv": "^2.2.2",
4546
"react-datepicker": "^4.6.0",
4647
"react-dom": "^17.0.2",

frontend/src/pages/DegreePage.tsx

Lines changed: 66 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import React, {useState} from 'react'
22
import { Link, useParams, useNavigate } from "react-router-dom"
3-
import { Form } from "react-bootstrap"
3+
import { Form, Dropdown } from "react-bootstrap"
4+
import MultiSelect from "react-bootstrap-multiselect"
5+
import 'react-bootstrap-multiselect/css/bootstrap-multiselect.css'
46

57
import { useEngine, useGetDegree, useIndexExam, usePostDegree, usePatchDegree } from '../modules/engine'
68
import Card from '../components/Card'
@@ -177,12 +179,58 @@ export function EditDegreePage() {
177179
}
178180

179181
function DegreeForm({ mutate, degree, exams }) {
182+
const options = [
183+
{ label: 'Mela', value: 'mela' },
184+
{ label: 'Banana', value: 'banana' },
185+
{ label: 'Arancia', value: 'arancia' }
186+
];
187+
188+
const handleChange = (selectedOptions) => {
189+
console.log('Selezionato:', selectedOptions);
190+
};
191+
192+
return (
193+
<div className="container mt-5">
194+
<h3>Frutta preferita</h3>
195+
<MultiSelect
196+
multiple
197+
onChange={handleChange}
198+
enableFiltering
199+
includeSelectAllOption
200+
buttonClass="btn btn-primary"
201+
>
202+
{options.map(option =>
203+
<option key={option.value} value={option.value}>{option.label}</option>)}
204+
</MultiSelect>
205+
</div>
206+
);
207+
}
208+
209+
function DegreeForm_({mutate,degree,exams}) {
180210
const [data, setData] = useState(degree)
181211
const [validation, setValidation] = useState<any>({})
182212
const engine = useEngine()
183213
const navigate = useNavigate()
184214
const current_year = new Date().getFullYear()
185215

216+
const [selectedOptions, setSelectedOptions] = useState([]);
217+
const options = [
218+
{ value: 'One', selected: true },
219+
{ value: 'Two' },
220+
{ value: 'Three' }
221+
];
222+
223+
const handleChange = (selected) => {
224+
setSelectedOptions(selected);
225+
};
226+
return (
227+
<MultiSelect
228+
onChange={handleChange}
229+
data={options}
230+
multiple
231+
/>
232+
);
233+
186234
return <Card>
187235
<Group
188236
validationError={validation.name}
@@ -230,6 +278,23 @@ function DegreeForm({ mutate, degree, exams }) {
230278
</Group>
231279
<h4>gruppi di esami</h4>
232280

281+
<Dropdown>
282+
<Dropdown.Toggle variant="success" id="dropdown-basic">
283+
Select Options
284+
</Dropdown.Toggle>
285+
<Dropdown.Menu>
286+
{["A","B","C"].map((option, index) => (
287+
<Dropdown.Item
288+
key={index}
289+
onClick={() => {}}
290+
active={["B"].includes(option)}
291+
>
292+
{option}
293+
</Dropdown.Item>
294+
))}
295+
</Dropdown.Menu>
296+
</Dropdown>
297+
233298
<Group
234299
validationError={validation.default_group}
235300
controlId="default_group"

0 commit comments

Comments
 (0)