2025-04-10 16:08:24 +12:00
|
|
|
import Markdown from 'markdown-to-jsx';
|
2025-05-13 22:15:04 +12:00
|
|
|
import { ReactNode } from 'react';
|
|
|
|
|
|
|
|
import { DiffViewMode } from './DiffControl';
|
|
|
|
import { DiffViewSection } from './DiffViewSection';
|
|
|
|
import { SelectedRevisionNumber, CompareRevisionNumberFetched } from './types';
|
2025-04-10 16:08:24 +12:00
|
|
|
|
|
|
|
type Props = {
|
|
|
|
notes: string;
|
2025-05-13 22:15:04 +12:00
|
|
|
selectedRevisionNumber: SelectedRevisionNumber;
|
|
|
|
diffViewMode: DiffViewMode;
|
|
|
|
compareNotes?: string;
|
|
|
|
compareRevisionNumberFetched?: CompareRevisionNumberFetched;
|
|
|
|
isCompareReleaseLoading: boolean;
|
|
|
|
isCompareReleaseError: boolean;
|
|
|
|
diffControl: ReactNode;
|
2025-04-10 16:08:24 +12:00
|
|
|
};
|
|
|
|
|
2025-05-13 22:15:04 +12:00
|
|
|
export function NotesDetails({
|
|
|
|
notes,
|
|
|
|
selectedRevisionNumber,
|
|
|
|
diffViewMode,
|
|
|
|
compareNotes,
|
|
|
|
compareRevisionNumberFetched,
|
|
|
|
isCompareReleaseLoading,
|
|
|
|
isCompareReleaseError,
|
|
|
|
diffControl,
|
|
|
|
}: Props) {
|
|
|
|
return (
|
|
|
|
<>
|
|
|
|
{diffControl}
|
|
|
|
{diffViewMode === 'view' ? (
|
|
|
|
<Markdown className="list-inside mt-6">{notes}</Markdown>
|
|
|
|
) : (
|
|
|
|
<DiffViewSection
|
|
|
|
isCompareReleaseLoading={isCompareReleaseLoading}
|
|
|
|
isCompareReleaseError={isCompareReleaseError}
|
|
|
|
compareRevisionNumberFetched={compareRevisionNumberFetched}
|
|
|
|
selectedRevisionNumber={selectedRevisionNumber}
|
|
|
|
newText={notes}
|
|
|
|
originalText={compareNotes ?? ''}
|
|
|
|
id="helm-notes-diff-viewer"
|
|
|
|
data-cy="helm-notes-diff-viewer"
|
|
|
|
/>
|
|
|
|
)}
|
|
|
|
</>
|
|
|
|
);
|
2025-04-10 16:08:24 +12:00
|
|
|
}
|