mirror of
https://github.com/OneUptime/oneuptime.git
synced 2026-04-06 00:32:12 +02:00
fix modeldetail bugs
This commit is contained in:
@@ -35,21 +35,11 @@ const ModelDetail: Function = <TBaseModel extends BaseModel>(
|
||||
const [isLoading, setIsLoading] = useState<boolean>(true);
|
||||
const [error, setError] = useState<string>('');
|
||||
const [item, setItem] = useState<TBaseModel | null>(null);
|
||||
const [model, setModal] = useState<TBaseModel | null>(null);
|
||||
|
||||
useEffect(() => {
|
||||
if (props.modelType) {
|
||||
setModal(new props.modelType());
|
||||
}
|
||||
},[props.modelType]);
|
||||
|
||||
const [onBeforeFetchData, setOnBeforeFetchData] = useState<
|
||||
JSONObject | undefined
|
||||
>(undefined);
|
||||
|
||||
useEffect(() => {
|
||||
fetchItem();
|
||||
}, [props.refresher]);
|
||||
|
||||
const getSelectFields: Function = (): Select<TBaseModel> => {
|
||||
const select: Select<TBaseModel> = {};
|
||||
@@ -74,14 +64,14 @@ const ModelDetail: Function = <TBaseModel extends BaseModel>(
|
||||
? (Object.keys(field.field)[0] as string)
|
||||
: null;
|
||||
|
||||
if (key && model?.isFileColumn(key)) {
|
||||
if (key && new props.modelType()?.isFileColumn(key)) {
|
||||
(populate as JSONObject)[key] = {
|
||||
file: true,
|
||||
_id: true,
|
||||
type: true,
|
||||
name: true,
|
||||
};
|
||||
} else if (key && model?.isEntityColumn(key)) {
|
||||
} else if (key && new props.modelType()?.isEntityColumn(key)) {
|
||||
(populate as JSONObject)[key] = (field.field as any)[key];
|
||||
}
|
||||
}
|
||||
@@ -96,7 +86,7 @@ const ModelDetail: Function = <TBaseModel extends BaseModel>(
|
||||
PermissionUtil.getAllPermissions();
|
||||
|
||||
const accessControl: Dictionary<ColumnAccessControl> =
|
||||
model?.getColumnAccessControlForAllColumns() || {};
|
||||
new props.modelType()?.getColumnAccessControlForAllColumns() || {};
|
||||
|
||||
const fieldsToSet: Array<Field<TBaseModel>> = [];
|
||||
|
||||
@@ -161,6 +151,7 @@ const ModelDetail: Function = <TBaseModel extends BaseModel>(
|
||||
}, [onBeforeFetchData]);
|
||||
|
||||
const fetchItem: Function = async (): Promise<void> => {
|
||||
|
||||
// get item.
|
||||
setIsLoading(true);
|
||||
props.onLoadingChange && props.onLoadingChange(true);
|
||||
@@ -181,9 +172,9 @@ const ModelDetail: Function = <TBaseModel extends BaseModel>(
|
||||
if (!item) {
|
||||
setError(
|
||||
`Cannot load ${(
|
||||
model?.singularName || 'item'
|
||||
new props.modelType()?.singularName || 'item'
|
||||
).toLowerCase()}. It could be because you don't have enough permissions to read this ${(
|
||||
model?.singularName || 'item'
|
||||
new props.modelType()?.singularName || 'item'
|
||||
).toLowerCase()}.`
|
||||
);
|
||||
}
|
||||
@@ -210,8 +201,10 @@ const ModelDetail: Function = <TBaseModel extends BaseModel>(
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
fetchItem();
|
||||
}, []);
|
||||
if (props.modelId && props.modelType) {
|
||||
fetchItem();
|
||||
}
|
||||
}, [props.modelId, props.refresher, props.modelType]);
|
||||
|
||||
if (isLoading) {
|
||||
return (
|
||||
|
||||
Reference in New Issue
Block a user