Contenedor límite
Objetivo
Este contenedor limita la cantidad de elementos secundarios visibles cuando se desborda. También puede mostrar contenido especial al desbordarse (elemento con el atributo slot='limit'). Esto puede ser útil en barras de herramientas o tarjetas cuando se necesita mostrar algunos elementos y el resto a través de paneles adicionales o una vista desplegable.
Uso
jsx
import { useEffect } from 'react';
import { useLimit } from 'effsz/limit';
const { observe } = useLimit();
export const App = () => {
useEffect(() => {
const unobserve = observe((event) => {
// gestionar eventos límite
});
return () => unobserve();
}, []);
return <effsz-limit fdir='rr' gap='5'>
<div className='first'>...</div>
<div className='second'>...</div>
<div slot='limit' className='overflow'>...</div>
</effsz-limit>
};Typos
ts
/**
* Limit container attributes
*/
export interface ILimitContainerAttrs {
/**
* Flex direction
*/
fdir: 'r' | 'rr' | 'c' | 'cr';
/**
* Gap in px
*/
gap: string;
};
/**
* Limit container
*/
export interface ILimitContainerElement extends HTMLElement {
/**
* Limit axis
*/
get axis(): 'x' | 'y';
/**
* Visible elements count
*/
get limitCount(): number;
/**
* Is container hiding some children
*/
get isLimited(): boolean;
}