Skip to content

Commit

Permalink
[4208] Fix after review
Browse files Browse the repository at this point in the history
Bug: #4208
Signed-off-by: Denis Nikiforov <[email protected]>
  • Loading branch information
AresEkb committed Nov 22, 2024
1 parent a4afb09 commit 6105ee0
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@
import { useSelection, WorkbenchViewComponentProps } from '@eclipse-sirius/sirius-components-core';
import { FormBasedView, FormContext } from '@eclipse-sirius/sirius-components-forms';
import Typography from '@mui/material/Typography';
import { useEffect, useState } from 'react';
import { makeStyles } from 'tss-react/mui';
import { DetailsViewState } from './DetailsView.types';
import { useDetailsViewSubscription } from './useDetailsViewSubscription';
import { GQLDetailsEventPayload, GQLFormRefreshedEventPayload } from './useDetailsViewSubscription.types';

Expand All @@ -27,15 +29,25 @@ const isFormRefreshedEventPayload = (payload: GQLDetailsEventPayload): payload i
payload && payload.__typename === 'FormRefreshedEventPayload';

export const DetailsView = ({ editingContextId, readOnly }: WorkbenchViewComponentProps) => {
const [state, setState] = useState<DetailsViewState>({
form: null,
});

const { selection } = useSelection();

const objectIds: string[] = selection.entries.map((entry) => entry.id);
const skip = objectIds.length === 0;
const { payload, complete } = useDetailsViewSubscription(editingContextId, objectIds, skip);

useEffect(() => {
if (isFormRefreshedEventPayload(payload)) {
setState((prevState) => ({ ...prevState, form: payload.form }));
}
}, [payload]);

const { classes } = useDetailsViewStyles();

if (!isFormRefreshedEventPayload(payload) || !payload.form || complete) {
if (!state.form || complete) {
return (
<div className={classes.idle}>
<Typography variant="subtitle2">No object selected</Typography>
Expand All @@ -48,7 +60,7 @@ export const DetailsView = ({ editingContextId, readOnly }: WorkbenchViewCompone
value={{
payload: payload,
}}>
<FormBasedView editingContextId={editingContextId} form={payload.form} readOnly={readOnly} />
<FormBasedView editingContextId={editingContextId} form={state.form} readOnly={readOnly} />
</FormContext.Provider>
</div>
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,8 @@
* Obeo - initial API and implementation
*******************************************************************************/

import { Selection } from '@eclipse-sirius/sirius-components-core';
import { GQLForm } from '@eclipse-sirius/sirius-components-forms';

export interface DetailsViewState {
currentSelection: Selection;
form: GQLForm | null;
}

0 comments on commit 6105ee0

Please sign in to comment.