/**
 * Entries Page Script.
 *
 * Handles UI interactions on the Entries admin page.
 */

wp.domReady( () => {
	/**
	 * Internal dependencies
	 */
	const { applyZebraStriping } = window.frmAdminBuild;
	const { onClickPreventDefault } = frmDom.util;

	/**
	 * Applies zebra striping to the entry view page table.
	 */
	applyZebraStriping( '.frm-alt-table', 'frm-empty-row' );

	/**
	 * Manages the behavior of the 'Show Empty Fields' button.
	 *
	 * Handles the initialization and event binding for the button. It toggles
	 * the button's state between showing and hiding empty fields in the table and adjusts
	 * the zebra striping accordingly.
	 */
	manageShowEmptyFieldsButton();

	function manageShowEmptyFieldsButton() {
		const showEmptyFieldsButton = document.getElementById( 'frm-entry-show-empty-fields' );

		// Early return if the button is not found in the DOM.
		if ( ! showEmptyFieldsButton ) {
			return;
		}

		if ( ! showEmptyFieldsButton.dataset.show ) {
			showEmptyFieldsButton.dataset.show = 'false';
		}

		onClickPreventDefault( showEmptyFieldsButton, () => {
			// Toggle button state and update table striping
			const newShowState = showEmptyFieldsButton.dataset.show === 'true' ? 'false' : 'true';
			showEmptyFieldsButton.dataset.show = newShowState;

			setTimeout( () => {
				applyZebraStriping( '.frm-alt-table', newShowState === 'true' ? '' : 'frm-empty-row' );
			}, newShowState === 'true' ? 0 : 200 );
		} );
	}
} );
