İçeriğe geç
BigBang

Sık açılanlar

    ↑↓Gezin↵AçEscKapat
    EN

    Bileşenler

    ProgressBar

    Bir görevin ne kadar ilerlediğini gösteren ya da kalan süre bilinmezken kayan çubuk.

    Storybook
    Storybook
    Kaynak kod
    Kaynak kod

    Aşağıdaki örnek Storybook’tan canlı yüklenir; denetimleri Storybook’ta açabilirsiniz.

    Canlı örnek, StorybookStorybook'ta aç

    Etiket ve yüzde çubuğun üstündedir. Yüzde Provider diline göre biçimlenir: Türkçede “%40”.

    Dosya yükleniyor
    x
    import { ProgressBar } from '@bigbang/ui';
    export default function Default() {
    return <ProgressBar label="Dosya yükleniyor" value={40} />;
    }

    value verilmezse çubuk kayar. Hareketi azaltma açıkken kayma durur ve soluk, dolu bir çubuk kalır.

    Hazırlanıyor
    x
    import { ProgressBar } from '@bigbang/ui';
    export default function Indeterminate() {
    return <ProgressBar label="Hazırlanıyor" />;
    }

    valueText yüzde yerine okunan değeri verir; description kalan süre gibi bir satır ekler.

    Dosyalar aktarılıyor

    Yaklaşık 2 dakika kaldı

    x
    import { ProgressBar } from '@bigbang/ui';
    export default function WithDescription() {
    return <ProgressBar label="Dosyalar aktarılıyor" value={3} max={10} valueText="10 dosyadan 3'ü" description="Yaklaşık 2 dakika kaldı" />;
    }

    size="sm" 4 px, md 8 px. Sonuç belli olunca success, warning ya da danger kullanın.

    Dosya yükleniyor
    x
    Yükleme tamamlandı
    x
    Yükleme durdu
    x
    import { ProgressBar } from '@bigbang/ui';
    export default function SizesAndTones() {
    return (
    <div className="flex flex-col gap-lg">
    <ProgressBar label="Dosya yükleniyor" value={40} size="sm" />
    <ProgressBar label="Yükleme tamamlandı" value={100} tone="success" />
    <ProgressBar label="Yükleme durdu" value={65} tone="danger" />
    </div>
    );
    }

    Dolgu genişliği değil ölçeği değiştirerek büyür, böylece yerleşimi yeniden hesaplatmaz.

    Dosya yükleniyor
    x
    import { Button, ProgressBar } from '@bigbang/ui';
    import { useEffect, useState } from 'react';
    export default function Live() {
    const [value, setValue] = useState(0);
    const [running, setRunning] = useState(false);
    useEffect(() => {
    if (!running) return;
    const id = setInterval(() => setValue((current) => Math.min(current + 10, 100)), 500);
    return () => clearInterval(id);
    }, [running]);
    return (
    <div className="flex flex-col gap-md">
    <ProgressBar label="Dosya yükleniyor" value={value} tone={value === 100 ? 'success' : 'brand'} />
    <div className="flex gap-sm">
    <Button size="sm" onClick={() => setRunning(true)}>
    Başlat
    </Button>
    <Button
    size="sm"
    variant="secondary"
    onClick={() => {
    setRunning(false);
    setValue(0);
    }}
    >
    Sıfırla
    </Button>
    </div>
    </div>
    );
    }

    Ray color-surface-sunken, dolgu color-action-primary-default kullanır.

    Dosya yükleniyor
    x
    Yükleme tamamlandı
    x
    Yükleme durdu
    x
    Dosya yükleniyor
    x
    Yükleme tamamlandı
    x
    Yükleme durdu
    x
    import { ProgressBar } from '@bigbang/ui';
    export default function SizesAndTones() {
    return (
    <div className="flex flex-col gap-lg">
    <ProgressBar label="Dosya yükleniyor" value={40} size="sm" />
    <ProgressBar label="Yükleme tamamlandı" value={100} tone="success" />
    <ProgressBar label="Yükleme durdu" value={65} tone="danger" />
    </div>
    );
    }