argo-cd
33 строки · 1.2 Кб
1import * as React from 'react';
2import {useState} from 'react';
3import {Diff, Hunk} from 'react-diff-view';
4import 'react-diff-view/style/index.css';
5
6import './application-resources-diff.scss';
7
8export interface IndividualDiffSectionProps {
9file: any;
10showPath: boolean;
11whiteBox: string;
12viewType: string;
13}
14
15export const IndividualDiffSection = (props: IndividualDiffSectionProps) => {
16const {file, showPath, whiteBox, viewType} = props;
17const [collapsed, setCollapsed] = useState(false);
18return (
19<div className={`${whiteBox} application-component-diff__diff`}>
20{showPath && (
21<p className='application-resources-diff__diff__title'>
22{file.newPath}
23<i className={`fa fa-caret-${collapsed ? 'down' : 'up'} diff__collapse`} onClick={() => setCollapsed(!collapsed)} />
24</p>
25)}
26{!collapsed && (
27<Diff viewType={viewType} diffType={file.type} hunks={file.hunks}>
28{(hunks: any) => hunks.map((hunk: any) => <Hunk className={'custom-diff-hunk'} key={hunk.content} hunk={hunk} />)}
29</Diff>
30)}
31</div>
32);
33};
34