<?php
/**
 * Shared partial — "Informations du TFE" fieldset.
 *
 * Variables consumed:
 *   callable|null $oldFn          — callable($key, $default='') to retrieve old/current values;
 *                                   defaults to the global old() function when null.
 *   callable|null $withAutofocusFn — callable($field, $attrs=[]) to inject autofocus;
 *                                   defaults to identity when null.
 *   array         $allowedObjet   — list of allowed objet values; when count > 1 a radio group
 *                                   is shown; when count === 1 a hidden input is emitted instead.
 *   array         $formData       — raw form data array (used for checkbox states).
 *   string        $synopsisExtra  — optional HTML block injected after the synopsis label.
 */

$oldFn           = $oldFn           ?? (function_exists('old') ? 'old' : fn($k, $d = '') => $d);
$withAutofocusFn = $withAutofocusFn ?? fn($field, $attrs = []) => $attrs;
$allowedObjet    = $allowedObjet    ?? [];
$formData        = $formData        ?? [];
$synopsisExtra   = $synopsisExtra   ?? '';
$adminMode       = $adminMode       ?? false;
?>
<fieldset>
    <legend>Informations du TFE</legend>

    <?php if (!empty($allowedObjet)): ?>
    <?php if (count($allowedObjet) > 1): ?>
    <div class="admin-form-group">
        <label>Type de travail&nbsp;: <span class="asterisk">*</span></label>
        <div class="form-radio-group">
            <?php foreach ($allowedObjet as $objetVal): ?>
            <label class="admin-checkbox-label">
                <input type="radio" name="objet" value="<?= htmlspecialchars($objetVal) ?>"
                    <?= ($oldFn('objet') ?: $allowedObjet[0]) === $objetVal ? 'checked' : '' ?>
                    <?= $adminMode ? '' : 'required' ?>>
                <?= htmlspecialchars(ucfirst($objetVal)) ?>
            </label>
            <?php endforeach; ?>
        </div>
    </div>
    <?php else: ?>
    <input type="hidden" name="objet" value="<?= htmlspecialchars($allowedObjet[0]) ?>">
    <?php endif; ?>
    <?php endif; ?>

    <?php
    $name = 'titre'; $label = 'Titre du TFE :'; $value = $oldFn('titre'); $required = !$adminMode;
    $attrs = $withAutofocusFn('titre');
    include APP_ROOT . '/templates/partials/form/text-field.php';
    ?>
    <?php
    $name = 'subtitle'; $label = 'Sous-titre (si applicable) :'; $value = $oldFn('subtitle'); $required = false;
    include APP_ROOT . '/templates/partials/form/text-field.php';
    ?>
    <?php
    $name = 'auteurice'; $label = 'Auteur·ice(s) :'; $value = $oldFn('auteurice'); $required = !$adminMode;
    $attrs = $withAutofocusFn('auteurice', ['autocomplete' => 'name']);
    $hint = 'Séparez les auteur·ices par des virgules.';
    include APP_ROOT . '/templates/partials/form/text-field.php';
    ?>
    <?php
    $name = 'mail'; $label = 'Contact visible (optionnel) [mail/site/insta/etc.] :'; $value = $oldFn('mail');
    $attrs = ['autocomplete' => 'email'];
    $hint = 'Ce contact sera visible publiquement sur la fiche du TFE.';
    include APP_ROOT . '/templates/partials/form/text-field.php';
    ?>

    <div>
        <label for="synopsis">Synopsis :<?= $adminMode ? '' : ' <span class="asterisk">*</span>' ?></label>
        <?= $synopsisExtra ?>
        <textarea id="synopsis" name="synopsis" rows="7" <?= $adminMode ? '' : 'required' ?>
                  <?= ($withAutofocusFn('synopsis')['autofocus'] ?? false) ? 'autofocus' : '' ?>><?= $oldFn('synopsis') ?></textarea>
    </div>
</fieldset>
<?php
unset($allowedObjet, $synopsisExtra);
