Skip to content

Commit f16c0fa

Browse files
authored
feat(diff-previewer): support data prop (#147)
1 parent 7b8f1b6 commit f16c0fa

4 files changed

Lines changed: 196 additions & 179 deletions

File tree

packages/core/src/api/renderDiffViewer.tsx

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -48,27 +48,27 @@ export function DiffViewerLayoutComponent(): React.ReactElement {
4848
);
4949
}
5050

51-
export const DiffViewerRenderer = (_props: IDiffViewerProps) => {
52-
const props = merge({
51+
export const DiffViewerRenderer = (props: IDiffViewerProps) => {
52+
const mergedProps = merge({
5353
appConfig: {},
5454
runtimeConfig: {
55-
onWillApplyTheme: _props.onWillApplyTheme,
56-
tabBarRightExtraContent: _props.tabBarRightExtraContent,
55+
onWillApplyTheme: props.onWillApplyTheme,
56+
tabBarRightExtraContent: props.tabBarRightExtraContent,
5757
} as RuntimeConfig,
58-
}, _props) as IAppRendererProps;
58+
}, props) as IAppRendererProps;
5959

60-
if (!props.appConfig.injector) {
61-
props.appConfig.injector = new Injector();
60+
if (!mergedProps.appConfig.injector) {
61+
mergedProps.appConfig.injector = new Injector();
6262
}
6363

64-
const injector = props.appConfig.injector;
64+
const injector = mergedProps.appConfig.injector;
6565

6666
injector.addProviders({
6767
token: IDiffViewerProps,
68-
useValue: props,
68+
useValue: mergedProps,
6969
});
7070

71-
const appConfig = props.appConfig;
71+
const appConfig = mergedProps.appConfig;
7272

7373
let appModules: ModuleConstructor[] = appConfig?.modules || [];
7474
if (!appModules.includes(DiffViewerModule)) {
@@ -133,11 +133,13 @@ export const DiffViewerRenderer = (_props: IDiffViewerProps) => {
133133
},
134134
},
135135
}),
136-
}, props);
136+
}, mergedProps);
137137

138138
return (
139139
<AppRenderer
140140
{...diffViewerAppConfig}
141141
/>
142142
);
143143
};
144+
145+
export const DiffPreviewer = DiffViewerRenderer;

packages/core/src/core/diff-viewer/common.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,16 @@ export interface IOverrideAppRendererProps extends IOverrideAppRendererConfig {
115115
}
116116

117117
export const IDiffViewerProps = Symbol('IDiffViewerProps');
118+
119+
export interface IDiffItem {
120+
path: string;
121+
oldCode: string;
122+
newCode: string;
123+
}
124+
118125
export interface IDiffViewerProps extends Partial<IOverrideAppRendererProps> {
126+
data?: IDiffItem[];
127+
119128
onRef: (handle: IDiffViewerHandle) => void;
120129

121130
onWillApplyTheme?: (theme: ITheme) => Record<string, string | undefined>;

0 commit comments

Comments
 (0)