FEATURE Add artisan JavaScript file to update Artisan members name
This commit is contained in:
parent
9863cb65d5
commit
86066613cb
44
resources/js/artisans.ts
Normal file
44
resources/js/artisans.ts
Normal file
|
|
@ -0,0 +1,44 @@
|
||||||
|
interface MemberElement extends Element {
|
||||||
|
querySelector(selectors: string): Element | null;
|
||||||
|
}
|
||||||
|
|
||||||
|
window.addEventListener('DOMContentLoaded', (): void => {
|
||||||
|
const artisansMembers: NodeListOf<MemberElement> = document.querySelectorAll('.acf-field-670d268f2b324 div[data-layout="membre"]');
|
||||||
|
|
||||||
|
artisansMembers.forEach((member: MemberElement): void => {
|
||||||
|
setMemberName(member);
|
||||||
|
|
||||||
|
// Créer un MutationObserver pour surveiller les changements de classe
|
||||||
|
const observer: MutationObserver = new MutationObserver((mutations: MutationRecord[]): void => {
|
||||||
|
mutations.forEach((mutation: MutationRecord): void => {
|
||||||
|
if (mutation.type === 'attributes' && mutation.attributeName === 'class') {
|
||||||
|
setTimeout((): void => {
|
||||||
|
setMemberName(member);
|
||||||
|
}, 200);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Configuration de l'observateur pour surveiller les changements de classe
|
||||||
|
observer.observe(member, {
|
||||||
|
attributes: true,
|
||||||
|
attributeFilter: ['class'],
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
function setMemberName(member: MemberElement): void {
|
||||||
|
const memberFirstName: string | undefined = (member.querySelector('div[data-name="first_name"] input') as HTMLInputElement)?.value;
|
||||||
|
const memberLastName: string | undefined = (member.querySelector('div[data-name="last_name"] input') as HTMLInputElement)?.value;
|
||||||
|
const memberName: string = `${memberFirstName} ${memberLastName}`;
|
||||||
|
|
||||||
|
const spanOrder: Element | null = member.querySelector('.acf-fc-layout-handle span');
|
||||||
|
const panelTitleDiv: Element | null = member.querySelector('.acf-fc-layout-handle');
|
||||||
|
|
||||||
|
if (memberName && memberName !== '' && panelTitleDiv) {
|
||||||
|
panelTitleDiv.textContent = memberName;
|
||||||
|
if (spanOrder) {
|
||||||
|
panelTitleDiv.prepend(spanOrder);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user