Храните один selectedId; после выбора блокируйте остальные кнопки через disabled и серый стиль, исключив для них hover-эффекты.
Когда выбран один квадрат, все остальные должны стать серыми; клики и наведение на них не должны иметь эффекта.
Храните один selectedId; после выбора блокируйте остальные кнопки через disabled и серый стиль, исключив для них hover-эффекты.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Храните один selectedId; после выбора блокируйте остальные кнопки через disabled и серый стиль, исключив для них hover-эффекты.
Для массива квадратов с уникальными id условие блокировки: selectedId !== null && selectedId !== item.id. В обработчике также проверяйте это условие, а CSS hover задавайте только для :not(:disabled). Нативные кнопки обеспечивают клавиатурную доступность. Возможность снять выбор повторным кликом нужно отдельно согласовать.