Skip to content

Commit 1d152ff

Browse files
Merge pull request #92 from microsoft/psl-raju-dev
fix: bug and Observations fixed
2 parents 7153beb + d3111b8 commit 1d152ff

File tree

7 files changed

+89
-55
lines changed

7 files changed

+89
-55
lines changed

src/ContentProcessorWeb/src/Components/DocumentViewer/DocumentViewer.styles.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
justify-content: center;
4949
height: 100%;
5050
border: 1px solid var(--colorNeutralBackground2Pressed);
51-
background: var(--colorNeutralBackground4)
51+
background: var(--colorNeutralBackground1Hover)
5252
}
5353

5454

src/ContentProcessorWeb/src/Components/JSONEditor/JSONEditor.styles.scss

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,20 @@ textarea {
1414
justify-content: center;
1515
align-items: center;
1616
height: 100%;
17+
}
18+
19+
.JSONEditor-container {
20+
display: flex;
21+
flex-direction: column;
22+
height: 100%;
23+
24+
.JSONEditor-searchDiv {
25+
flex: 0 0 auto;
26+
padding: 5px 10px;
27+
}
28+
29+
.JSONEditor-contentDiv {
30+
flex: 1 1 auto;
31+
overflow-y: auto;
32+
}
1733
}

src/ContentProcessorWeb/src/Components/JSONEditor/JSONEditor.tsx

Lines changed: 61 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ const JSONEditor: React.FC<JSONEditorProps> = () => {
1717
const [isFocused, setIsFocused] = useState(false);
1818
const dispatch = useDispatch<AppDispatch>();
1919
const [searchText, setSearchText] = useState('');
20+
const searchBoxRef = React.useRef<HTMLDivElement | null>(null);
2021

2122
const store = useSelector((state: RootState) => ({
2223
processId: state.leftPanel.processId,
@@ -32,9 +33,7 @@ const JSONEditor: React.FC<JSONEditorProps> = () => {
3233
if (Object.keys(store.contentData).length > 0) {
3334
const formattedJson = store.contentData.result;
3435
const data = {
35-
extracted_result: {
36-
...formattedJson
37-
}
36+
...formattedJson
3837
}
3938
setJsonData(data);
4039
} else {
@@ -49,58 +48,71 @@ const JSONEditor: React.FC<JSONEditorProps> = () => {
4948
}
5049

5150
const handleFocus = () => setIsFocused(true);
52-
const handleBlur = () => setIsFocused(false);
51+
const handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {
52+
const newFocusTarget = e.relatedTarget as HTMLElement | null;
53+
if (
54+
searchBoxRef.current &&
55+
newFocusTarget &&
56+
searchBoxRef.current.contains(newFocusTarget)
57+
) {
58+
return;
59+
}
60+
61+
setIsFocused(false);
62+
};
5363

5464
return (
5565
<>{
5666
store.cLoader ? <div className={"JSONEditorLoader"}><p>Loading...</p></div> :
5767
Object.keys(jsonData).length == 0 ? <p style={{ textAlign: 'center' }}>No data available</p> :
58-
<>
68+
<div className="JSONEditor-container">
5969
{store.isJSONEditorSearchEnabled &&
60-
<div style={{ display: 'flex', justifyContent: 'flex-end' }}>
61-
<SearchBox
62-
size="small"
63-
placeholder="Search"
64-
onFocus={handleFocus}
65-
onBlur={handleBlur}
66-
value={searchText}
67-
68-
onChange={(e, data) => { setSearchText(data.value) }}
69-
style={{
70-
width: isFocused ? '200px' : '100px',
71-
transition: 'width 0.3s ease',
72-
}}
73-
/>
74-
</div>}
75-
<JsonEditor
76-
data={jsonData}
77-
className='JSONEditorClass'
78-
rootName=""
79-
searchText={searchText}
80-
searchFilter={"all"}
81-
searchDebounceTime={300}
82-
theme={[{
83-
styles: {
84-
container: {
85-
width: '89%',
86-
minWidth: '100%',
87-
fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, "Apple Color Emoji", "Segoe UI Emoji", sans-serif',
88-
fontSize: '14px',
89-
paddingTop: '0px'
90-
},
91-
}
92-
}]}
93-
onUpdate={({ newData, currentData, newValue, currentValue, name, path }) => {
94-
onUpdateHandle(newData)
95-
}}
96-
//setData={ setJsonData } // optional
97-
restrictEdit={({ key, path, level, index, value, size, parentData, fullData, collapsed }) => {
98-
return !path.includes('extracted_result')
99-
}
100-
}
101-
restrictDelete={true}
102-
/>
103-
</>
70+
<div className="JSONEditor-searchDiv">
71+
<div style={{ display: 'flex', justifyContent: 'flex-end' }} ref={searchBoxRef}>
72+
<SearchBox
73+
size="small"
74+
placeholder="Search"
75+
onFocus={handleFocus}
76+
onBlur={handleBlur}
77+
value={searchText}
78+
onChange={(e, data) => { setIsFocused(true); setSearchText(data.value) }}
79+
style={{
80+
width: isFocused ? '200px' : '100px',
81+
transition: 'width 0.3s ease',
82+
}}
83+
/>
84+
</div></div>}
85+
<div className="JSONEditor-contentDiv">
86+
<JsonEditor
87+
data={jsonData}
88+
className='JSONEditorClass'
89+
rootName="extracted_result"
90+
searchText={searchText}
91+
searchFilter={"all"}
92+
searchDebounceTime={300}
93+
theme={[{
94+
styles: {
95+
container: {
96+
width: '89%',
97+
minWidth: '100%',
98+
fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, "Apple Color Emoji", "Segoe UI Emoji", sans-serif',
99+
fontSize: '14px',
100+
paddingTop: '0px'
101+
},
102+
}
103+
}]}
104+
onUpdate={({ newData, currentData, newValue, currentValue, name, path }) => {
105+
onUpdateHandle(newData)
106+
}}
107+
//setData={ setJsonData } // optional
108+
// restrictEdit={({ key, path, level, index, value, size, parentData, fullData, collapsed }) => {
109+
// return !path.includes('extracted_result')
110+
// }
111+
// }
112+
restrictDelete={true}
113+
/>
114+
</div>
115+
</div>
104116
}</>
105117
)
106118
}

src/ContentProcessorWeb/src/Pages/DefaultPage/Components/ProcessQueueGrid/ProcessQueueGrid.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@ const ProcessQueueGrid: React.FC<GridComponentProps> = () => {
134134
setItems(items);
135135
} else {
136136
setItems([])
137+
dispatch(setSelectedGridRow({ processId: '', item: {}}));
137138
}
138139
}
139140

@@ -327,6 +328,7 @@ const ProcessQueueGrid: React.FC<GridComponentProps> = () => {
327328
</TableHeader>
328329
<TableBody className="gridTableBody">
329330
<div className="GridList">
331+
{rows.length > 0?
330332
<AutoSizer>
331333
{({ height, width }) => (
332334
<List
@@ -339,7 +341,9 @@ const ProcessQueueGrid: React.FC<GridComponentProps> = () => {
339341
{RenderRow}
340342
</List>
341343
)}
342-
</AutoSizer>
344+
</AutoSizer> :
345+
<p style={{ textAlign: 'center' }}>No data available</p>
346+
}
343347
</div>
344348
</TableBody>
345349
</Table>

src/ContentProcessorWeb/src/Pages/DefaultPage/Components/SchemaDropdown/SchemaDropdown.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@ const ComboboxComponent = (props: Partial<ComboboxProps>) => {
4444
}, [store.schemaData]);
4545

4646
const handleChange: (typeof props)["onOptionSelect"] = (ev, data) => {
47-
dispatch(setSchemaSelectedOption(data));
47+
const selectedItem = data.optionValue !=undefined ? data : {}
48+
dispatch(setSchemaSelectedOption(selectedItem));
4849
};
4950

5051
return (

src/ContentProcessorWeb/src/Pages/DefaultPage/PanelCenter.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ const useStyles = makeStyles({
5353
border: '1px solid #DBDBDB',
5454
overflow: 'auto',
5555
background: '#f6f6f6',
56-
padding: '10px 5px',
56+
padding: '5px 5px',
5757
boxSizing: 'border-box'
5858
},
5959

@@ -166,7 +166,7 @@ const PanelCenter: React.FC<PanelCenterProps> = ({ togglePanel }) => {
166166
try {
167167
dispatch(startLoader("1"));
168168
dispatch(setUpdateComments(comment))
169-
const result = await dispatch(saveContentJson({ 'processId': store.activeProcessId, 'contentJson': store.modified_result.extracted_result, 'comments': comment, 'savedComments': store.comments }))
169+
const result = await dispatch(saveContentJson({ 'processId': store.activeProcessId, 'contentJson': store.modified_result, 'comments': comment, 'savedComments': store.comments }))
170170
if (result?.type === 'SaveContentJSON-Comments/fulfilled') {
171171
dispatch(setRefreshGrid(true));
172172
}
@@ -178,6 +178,7 @@ const PanelCenter: React.FC<PanelCenterProps> = ({ togglePanel }) => {
178178
}
179179

180180
const IsButtonSaveDisalbedCheck = () => {
181+
if(!store.activeProcessId) return true;
181182
if (status.includes(store.selectedItem.status)) return true;
182183
if (Object.keys(store.modified_result).length > 0) return false;
183184
if (comment.trim() !== store.comments && comment.trim() !== '') return false;

src/ContentProcessorWeb/src/store/slices/centerPanelSlice.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ const centerPanelSlice = createSlice({
149149
.addCase(fetchContentJsonData.rejected, (state, action: any) => {
150150
state.cError = action.error.message || 'An error occurred';
151151
state.cLoader = false;
152-
state.contentData = [];
152+
state.contentData = {};
153153
state.comments = "";
154154
toast.error(getDisplayMessage(action.payload))
155155
});

0 commit comments

Comments
 (0)