/** A public form not yet published, or one with changes not yet published, offers Publish. */ export const publishIsOffered = (isPublic: boolean, published: boolean, hasUnpublishedChanges: boolean): boolean => isPublic && !(published && !hasUnpublishedChanges); // Publishing used to live only under Form Settings; the header offers it on every tab. export const PublishHeaderAction = ({ isPublic, published, hasUnpublishedChanges, publishing, onPublish, onReviewUpdate }: { isPublic: boolean; published: boolean; hasUnpublishedChanges: boolean; publishing: boolean; onPublish: () => void; onReviewUpdate: () => void; }) => { if (!publishIsOffered(isPublic, published, hasUnpublishedChanges)) return null; return ( ); };