refactor: extract VersionHistoryItem component for improved readability and maintainability

This commit is contained in:
Jerald-Golden-B 2025-06-21 09:36:34 +05:30
parent 695e3c08bb
commit 4697dbc6f0
1 changed files with 44 additions and 26 deletions

View File

@ -99,11 +99,37 @@ const VersionHistory = () => {
{versionHistory.length === 0 ? ( {versionHistory.length === 0 ? (
<div className="no-versions-message">No saved versions</div> <div className="no-versions-message">No saved versions</div>
) : ( ) : (
versionHistory.map((version) => ( versionHistory.map((version) => {
const key = `version-${version.versionId}`;
return (
<VersionHistoryItem
key={key}
version={version}
onSelect={handleSelectVersion}
onRename={handleVersionNameChange}
/>
);
})
)}
</div>
</div>
);
};
export default VersionHistory;
type VersionHistoryItemProps = {
version: Version;
onSelect: (version: Version) => void;
onRename: (newName: string, versionId: string) => void;
};
const VersionHistoryItem: React.FC<VersionHistoryItemProps> = ({ version, onSelect, onRename }) => {
return (
<button <button
key={version.versionId}
className="saved-version" className="saved-version"
onClick={() => handleSelectVersion(version)} onClick={() => onSelect(version)}
> >
<div className="version-name">v {version.version}</div> <div className="version-name">v {version.version}</div>
<div className="version-details"> <div className="version-details">
@ -111,9 +137,7 @@ const VersionHistory = () => {
<span className="timestamp"> <span className="timestamp">
<RenameInput <RenameInput
value={version.versionName ? version.versionName : version.timeStamp} value={version.versionName ? version.versionName : version.timeStamp}
onRename={(newName) => onRename={(newName) => onRename(newName, version.versionId)}
handleVersionNameChange(newName, version.versionId)
}
/> />
</span> </span>
<span className="saved-by"> <span className="saved-by">
@ -124,11 +148,5 @@ const VersionHistory = () => {
<ArrowIcon /> <ArrowIcon />
</div> </div>
</button> </button>
))
)}
</div>
</div>
); );
}; };
export default VersionHistory;