# age-gate/3.7.3/src/Presentation/FocusTrap.php

Age Gate, version 3.7.3. 45 lines.

- Page: https://pluginprobe.com/plugins/age-gate/3.7.3/code/src/Presentation/FocusTrap.php
- Raw: https://pluginprobe.com/plugins/age-gate/3.7.3/raw/src/Presentation/FocusTrap.php
- Modified: 2025-03-27T08:14:32+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/age-gate/3.7.3/code/src/Presentation/FocusTrap.php#L10-L20`.

```php
<?php

namespace AgeGate\Presentation;

use AgeGate\Common\Settings;

class FocusTrap
{
    public function __construct()
    {
        add_action('wp_enqueue_scripts', [$this, 'assets'], 1);
    }

    public function assets()
    {
        $settings = Settings::getInstance();
        $path = sprintf('%s%s%s', AGE_GATE_URL, 'dist', ($settings->rawAssets ? '/raw' : ''));
        wp_enqueue_script('age-gate-focus', $path . '/focus.js', [], AGE_GATE_VERSION, !$settings->inHeader);

        $elements = [
            '.age-gate',
        ];

        if (is_admin_bar_showing()) {
            $elements[] = '#wpadminbar';
        }

        if ($settings->inputType === 'buttons') {
            $focused = null;
        } elseif ($settings->stepped) {
            $focused = 'age_gate[y]';
        } else {
            $focused = sprintf('age_gate[%s]', strtolower($settings->dateFormat[0] ?? 'd'));
        }

        wp_localize_script('age-gate-focus', 'agfocus', [
            'focus' => $focused,
            'elements' => array_merge(
                apply_filters('age_gate/trap_focus/elements', []),
                $elements
            )
        ]);
    }
}

```
