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