Skip to content

Sınırlandırıcı kapsayıcı (Limit container) ​

Amaç ​

Bu kapsayıcı, içeriği taştığında görünür alt öğelerin sayısını sınırlandırır. Ayrıca, taşma durumunda özel bir içerik ( slot='limit' özniteliğine sahip bir öğe) görüntüleyebilir. Bu özellik; araç çubuklarında veya kartlarda, öğelerin bir kısmını gösterip geri kalanını ek paneller ya da genişletilebilir alanlar aracılığıyla sunmanız gerektiğinde oldukça kullanışlıdır.

Kullanım ​

jsx
import { useEffect } from 'react';
import { useLimit } from 'effsz/limit';

const { observe } = useLimit();

export const App = () => {
    useEffect(() => {
        const unobserve = observe((event) => {
            // sınır olaylarını ele al
        });
        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>
};

Türler ​

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;
}

Apache Lisansı 2.0 altında yayınlanmıştır