```tsx
import React from 'react';
import { Button, Dropdown } from '@salutejs/plasma-web';
export function App() {
const items = [
{
value: 'north_america',
label: 'Северная Америка',
},
{
value: 'south_america',
label: 'Южная Америка',
items: [
{
value: 'brazil',
label: 'Бразилия',
items: [
{
value: 'rio_de_janeiro',
label: 'Рио-де-Жанейро',
},
{
value: 'sao_paulo',
label: 'Сан-Паулу',
},
],
},
{
value: 'argentina',
label: 'Аргентина',
},
],
},
];
return (
);
}
```
```tsx
import React from 'react';
import { Button, Dropdown } from '@salutejs/plasma-web';
export function App() {
const items = [
{
value: 'north_america',
label: 'Северная Америка',
},
{
value: 'south_america',
label: 'Южная Америка',
items: [
{
value: 'brazil',
label: 'Бразилия',
items: [
{
value: 'rio_de_janeiro',
label: 'Рио-де-Жанейро',
},
{
value: 'sao_paulo',
label: 'Сан-Паулу',
},
],
},
{
value: 'argentina',
label: 'Аргентина',
},
],
},
];
return (
);
}
```
Размер `Dropdown` задается с помощью свойства `size` .
Возможные значения свойства: `"l"` , `"m"` , `"s"` или `"xs"` .
```tsx
import React from 'react';
import { Button, Dropdown } from '@salutejs/plasma-web';
export function App() {
const items = [
{
value: 'north_america',
label: 'Северная Америка',
},
{
value: 'south_america',
label: 'Южная Америка',
items: [
{
value: 'brazil',
label: 'Бразилия',
items: [
{
value: 'rio_de_janeiro',
label: 'Рио-де-Жанейро',
},
{
value: 'sao_paulo',
label: 'Сан-Паулу',
},
],
},
{
value: 'argentina',
label: 'Аргентина',
},
],
},
];
return (
);
}
```
```tsx
import React from 'react';
import { Button, Dropdown } from '@salutejs/plasma-web';
export function App() {
const items = [
{
value: 'north_america',
label: 'Северная Америка',
},
{
value: 'south_america',
label: 'Южная Америка',
items: [
{
value: 'brazil',
label: 'Бразилия',
items: [
{
value: 'rio_de_janeiro',
label: 'Рио-де-Жанейро',
},
{
value: 'sao_paulo',
label: 'Сан-Паулу',
},
],
},
{
value: 'argentina',
label: 'Аргентина',
},
],
},
];
return (
);
}
```
Размер `Dropdown` задается с помощью свойства `size` .
Возможные значения свойства: `"l"` , `"m"` , `"s"` или `"xs"` . ```tsx
import React from 'react';
import { Button, Dropdown } from '@salutejs/plasma-web';
export function App() {
const items = [
{
value: 'north_america',
label: 'Северная Америка',
},
{
value: 'south_america',
label: 'Южная Америка',
items: [
{
value: 'brazil',
label: 'Бразилия',
items: [
{
value: 'rio_de_janeiro',
label: 'Рио-де-Жанейро',
},
{
value: 'sao_paulo',
label: 'Сан-Паулу',
},
],
},
{
value: 'argentina',
label: 'Аргентина',
},
],
},
];
return (
);
}
```
Параметр `placement` может принимать следующие значения : `"top"` , `"right"` , `"bottom"` , `"left"` , `"auto"` .
Default value для placement - `"bottom"` .
```tsx
import React from 'react';
import { Button, Dropdown } from '@salutejs/plasma-web';
export function App() {
const items = [
{
value: 'north_america',
label: 'Северная Америка',
},
{
value: 'south_america',
label: 'Южная Америка',
items: [
{
value: 'brazil',
label: 'Бразилия',
items: [
{
value: 'rio_de_janeiro',
label: 'Рио-де-Жанейро',
},
{
value: 'sao_paulo',
label: 'Сан-Паулу',
},
],
},
{
value: 'argentina',
label: 'Аргентина',
},
],
},
];
return (
);
}
```
```tsx
import React from 'react';
import { Button, Dropdown } from '@salutejs/plasma-web';
export function App() {
const items = [
{
value: 'north_america',
label: 'Северная Америка',
},
{
value: 'south_america',
label: 'Южная Америка',
items: [
{
value: 'brazil',
label: 'Бразилия',
items: [
{
value: 'rio_de_janeiro',
label: 'Рио-де-Жанейро',
},
{
value: 'sao_paulo',
label: 'Сан-Паулу',
},
],
},
{
value: 'argentina',
label: 'Аргентина',
},
],
},
];
return (
);
}
```
Размер `Dropdown` задается с помощью свойства `size` .
Возможные значения свойства: `"l"` , `"m"` , `"s"` или `"xs"` . ```tsx
import React from 'react';
import { Button, Dropdown } from '@salutejs/plasma-web';
export function App() {
const items = [
{
value: 'north_america',
label: 'Северная Америка',
},
{
value: 'south_america',
label: 'Южная Америка',
items: [
{
value: 'brazil',
label: 'Бразилия',
items: [
{
value: 'rio_de_janeiro',
label: 'Рио-де-Жанейро',
},
{
value: 'sao_paulo',
label: 'Сан-Паулу',
},
],
},
{
value: 'argentina',
label: 'Аргентина',
},
],
},
];
return (
);
}
```
Параметр `placement` может принимать следующие значения : `"top"` , `"right"` , `"bottom"` , `"left"` , `"auto"` .
Default value для placement - `"bottom"` . ```tsx
import React from 'react';
import { Button, Dropdown } from '@salutejs/plasma-web';
export function App() {
const items = [
{
value: 'north_america',
label: 'Северная Америка',
},
{
value: 'south_america',
label: 'Южная Америка',
items: [
{
value: 'brazil',
label: 'Бразилия',
items: [
{
value: 'rio_de_janeiro',
label: 'Рио-де-Жанейро',
},
{
value: 'sao_paulo',
label: 'Сан-Паулу',
},
],
},
{
value: 'argentina',
label: 'Аргентина',
},
],
},
];
return (
);
}
```
Параметр `trigger` принимает строку: `"click"` или `"hover"` .
Default value - `"click"` .
Для примера показано значение `"hover"` .
```tsx
import React from 'react';
import { Button, Dropdown } from '@salutejs/plasma-web';
export function App() {
const items = [
{
value: 'north_america',
label: 'Северная Америка',
},
{
value: 'south_america',
label: 'Южная Америка',
items: [
{
value: 'brazil',
label: 'Бразилия',
items: [
{
value: 'rio_de_janeiro',
label: 'Рио-де-Жанейро',
},
{
value: 'sao_paulo',
label: 'Сан-Паулу',
},
],
},
{
value: 'argentina',
label: 'Аргентина',
},
],
},
];
return (
);
}
```
```tsx
import React from 'react';
import { Button, Dropdown } from '@salutejs/plasma-web';
export function App() {
const items = [
{
value: 'north_america',
label: 'Северная Америка',
},
{
value: 'south_america',
label: 'Южная Америка',
items: [
{
value: 'brazil',
label: 'Бразилия',
items: [
{
value: 'rio_de_janeiro',
label: 'Рио-де-Жанейро',
},
{
value: 'sao_paulo',
label: 'Сан-Паулу',
},
],
},
{
value: 'argentina',
label: 'Аргентина',
},
],
},
];
return (
);
}
```
Размер `Dropdown` задается с помощью свойства `size` .
Возможные значения свойства: `"l"` , `"m"` , `"s"` или `"xs"` . ```tsx
import React from 'react';
import { Button, Dropdown } from '@salutejs/plasma-web';
export function App() {
const items = [
{
value: 'north_america',
label: 'Северная Америка',
},
{
value: 'south_america',
label: 'Южная Америка',
items: [
{
value: 'brazil',
label: 'Бразилия',
items: [
{
value: 'rio_de_janeiro',
label: 'Рио-де-Жанейро',
},
{
value: 'sao_paulo',
label: 'Сан-Паулу',
},
],
},
{
value: 'argentina',
label: 'Аргентина',
},
],
},
];
return (
);
}
```
Параметр `placement` может принимать следующие значения : `"top"` , `"right"` , `"bottom"` , `"left"` , `"auto"` .
Default value для placement - `"bottom"` . ```tsx
import React from 'react';
import { Button, Dropdown } from '@salutejs/plasma-web';
export function App() {
const items = [
{
value: 'north_america',
label: 'Северная Америка',
},
{
value: 'south_america',
label: 'Южная Америка',
items: [
{
value: 'brazil',
label: 'Бразилия',
items: [
{
value: 'rio_de_janeiro',
label: 'Рио-де-Жанейро',
},
{
value: 'sao_paulo',
label: 'Сан-Паулу',
},
],
},
{
value: 'argentina',
label: 'Аргентина',
},
],
},
];
return (
);
}
```
Параметр `trigger` принимает строку: `"click"` или `"hover"` .
Default value - `"click"` .
Для примера показано значение `"hover"` . ```tsx
import React from 'react';
import { Button, Dropdown } from '@salutejs/plasma-web';
export function App() {
const items = [
{
value: 'north_america',
label: 'Северная Америка',
},
{
value: 'south_america',
label: 'Южная Америка',
items: [
{
value: 'brazil',
label: 'Бразилия',
items: [
{
value: 'rio_de_janeiro',
label: 'Рио-де-Жанейро',
},
{
value: 'sao_paulo',
label: 'Сан-Паулу',
},
],
},
{
value: 'argentina',
label: 'Аргентина',
},
],
},
];
return (
);
}
```
Иногда возникает необходимость вынесения выпадающего списка на уровни выше в DOM. К примеру, когда у родительского блока имеется scroll, и список будет обрезаться, чего хотелось бы избежать. Для такой реализации имеется пропс `portal` , который принимает либо `ref` либо `id` html-тега.
```tsx
import React, { useRef } from 'react';
import { Dropdown } from '@salutejs/plasma-web';
export function App() {
const items = [
{
value: 'north_america',
label: 'Северная Америка',
},
{
value: 'south_america',
label: 'Южная Америка',
items: [
{
value: 'brazil',
label: 'Бразилия',
items: [
{
value: 'rio_de_janeiro',
label: 'Рио-де-Жанейро',
},
{
value: 'sao_paulo',
label: 'Сан-Паулу',
},
],
},
{
value: 'argentina',
label: 'Аргентина',
},
],
},
];
const ref = useRef(null)
return (
);
}
```