/
githubmirror
/
tabler
Обзор
Документация
Войти
/
githubmirror
/
tabler
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
shared/components/cards/TabsCard.astro
104 строки
4 KB
Paweł Kuna
Narrow component prop types, remove unused props and dead code (#2838)
10 авг 2026, 00:14
Не верифицирован
10 авг 2026, 00:14
4f7beec
Код
Авторство
О чём код?
--- import Icon from '@ui/Icon.astro' import DropdownMenu from '@ui/DropdownMenu.astro' interface Props { id: string icons?: boolean reverse?: boolean justified?: boolean activity?: boolean disabled?: boolean dropdown?: boolean settings?: boolean animation?: boolean } const { id, icons, reverse = false, justified, activity, disabled, dropdown, settings, animation } = Astro.props const navClass = `nav nav-tabs card-header-tabs${reverse ? ' flex-row-reverse' : ''}${justified ? ' nav-fill' : ''}` const paneClass = `tab-pane${animation ? ' fade' : ''}` --- <div class="card"> <div class="card-header"> <ul class={navClass} role="tablist"> <li class="nav-item" role="presentation"> <a href={`#tabs-home-${id}`} id={`tabs-home-${id}-tab`} class="nav-link active" data-bs-toggle="tab" data-bs-target={`#tabs-home-${id}`} role="tab" aria-controls={`tabs-home-${id}`} aria-selected="true">{icons && <Icon name="home" class="me-2" />}Home</a> </li> <li class="nav-item" role="presentation"> <a href={`#tabs-profile-${id}`} id={`tabs-profile-${id}-tab`} class="nav-link" data-bs-toggle="tab" data-bs-target={`#tabs-profile-${id}`} role="tab" aria-controls={`tabs-profile-${id}`} aria-selected="false">{icons && <Icon name="user" class="me-2" />}Profile</a> </li> { activity && ( <li class="nav-item" role="presentation"> <a href={`#tabs-activity-${id}`} id={`tabs-activity-${id}-tab`} class="nav-link" data-bs-toggle="tab" data-bs-target={`#tabs-activity-${id}`} role="tab" aria-controls={`tabs-activity-${id}`} aria-selected="false"> {icons && <Icon name="activity" class="me-2" />} Activity </a> </li> ) } { disabled && ( <li class="nav-item" role="presentation"> <a href="#" class="nav-link disabled" data-bs-toggle="tab" role="tab" aria-selected="false" aria-disabled="true" tabindex="-1"> {icons && <Icon name="x" class="me-2" />} Disabled </a> </li> ) } { dropdown && ( <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"> Dropdown </a> <DropdownMenu /> </li> ) } { settings && ( <li class={`nav-item ${reverse ? 'me-auto' : 'ms-auto'}`} role="presentation"> <a href={`#tabs-settings-${id}`} id={`tabs-settings-${id}-tab`} class="nav-link" title="Settings" data-bs-toggle="tab" data-bs-target={`#tabs-settings-${id}`} role="tab" aria-controls={`tabs-settings-${id}`} aria-selected="false"> <Icon name="settings" /> </a> </li> ) } </ul> </div> <div class="card-body"> <div class="tab-content"> <div class={`${paneClass} active show`} id={`tabs-home-${id}`} role="tabpanel" aria-labelledby={`tabs-home-${id}-tab`}> <h4>Home tab</h4> <div>Cursus turpis vestibulum, dui in pharetra vulputate id sed non turpis ultricies fringilla at sed facilisis lacus pellentesque purus nibh</div> </div> <div class={paneClass} id={`tabs-profile-${id}`} role="tabpanel" aria-labelledby={`tabs-profile-${id}-tab`}> <h4>Profile tab</h4> <div>Fringilla egestas nunc quis tellus diam rhoncus ultricies tristique enim at diam, sem nunc amet, pellentesque id egestas velit sed</div> </div> { settings && ( <div class={paneClass} id={`tabs-settings-${id}`} role="tabpanel" aria-labelledby={`tabs-settings-${id}-tab`}> <h4>Settings tab</h4> <div>Donec ac vitae diam amet vel leo egestas consequat rhoncus in luctus amet, facilisi sit mauris accumsan nibh habitant senectus</div> </div> ) } { activity && ( <div class={paneClass} id={`tabs-activity-${id}`} role="tabpanel" aria-labelledby={`tabs-activity-${id}-tab`}> <h4>Activity tab</h4> <div>Donec ac vitae diam amet vel leo egestas consequat rhoncus in luctus amet, facilisi sit mauris accumsan nibh habitant senectus</div> </div> ) } </div> </div> </div>