// TestFlight editor (TestFlight tab): What to Test per locale (### whatToTest in the App Store listing file), the // Beta App Description per language, notes for Beta App Review, and the beta groups (checked JSON). Saved into the // files, then applied with the dry run in the window: test information, and creating the missing groups. Sending a // build to external testers and Beta App Review stay the owner's terminal steps. import type { EditableResult, Project } from '../../api'; import { t } from '../../i18n'; import { ApplyPanel, EditBar, JsonField, TextField, useEdits } from '../../ui/Editor'; import { Section } from '../../ui/ds'; import '../../styles/testflight.css'; type O = Record; const obj = (v: unknown): O => (v && typeof v === 'object' && !Array.isArray(v) ? (v as O) : {}); export function TestFlightEditor({ project, data, onSaved }: { project: Project; data: EditableResult; onSaved: () => void }) { const e = useEdits(); const tf = obj(obj(data.config.apple).testflight); const desc = tf.description; const unsaved = e.count(project.id, 'testflight') ? t('ed.saveFirst') : null; if (!data.apple) return null; return (
{data.apple.map(l => (
{l.lang}
{typeof desc !== 'string' && ( )}
))}
{typeof desc === 'string' && }
); }