FEATURE Introducing component
This commit is contained in:
parent
8c9d64ea93
commit
46151d30c7
34
resources/js/singles/post-toolbar.ts
Normal file
34
resources/js/singles/post-toolbar.ts
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
export function handlePostToolbar() {
|
||||
observeTabsButtons();
|
||||
}
|
||||
|
||||
function observeTabsButtons(): void {
|
||||
const toolbarButtons = document.querySelectorAll('#post-toolbar button[role="tab"]');
|
||||
if (!toolbarButtons) return;
|
||||
|
||||
toolbarButtons.forEach((toolbarButton) => {
|
||||
toolbarButton.addEventListener('click', () => {
|
||||
const currentTabValue = toolbarButton.getAttribute('data-tab') as string;
|
||||
toggleActiveTab(toolbarButton as HTMLElement);
|
||||
handleActiveTabContent(currentTabValue as string);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function toggleActiveTab(toolbarButton: HTMLElement): void {
|
||||
resetActiveToolbarButtons();
|
||||
toolbarButton.setAttribute('aria-selected', 'true');
|
||||
}
|
||||
|
||||
function resetActiveToolbarButtons(): void {
|
||||
const toolbarButtons = document.querySelectorAll('#post-toolbar button[role="tab"]');
|
||||
if (!toolbarButtons) return;
|
||||
toolbarButtons.forEach((toolbarButton) => {
|
||||
toolbarButton.setAttribute('aria-selected', 'false');
|
||||
});
|
||||
}
|
||||
|
||||
function handleActiveTabContent(tab: string): void {
|
||||
const contentWrapper = document.querySelector('.content-wrapper');
|
||||
contentWrapper?.setAttribute('data-active-tab', tab);
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user