From 5c024a5e2083225984cc8d000be6ad6a0a7ce7bd Mon Sep 17 00:00:00 2001 From: Doljinsuren Enkhbayar Date: Mon, 18 Mar 2024 13:22:31 +0800 Subject: [PATCH] if toggle is active, the button is displayed --- src/features/Shared/EntityScreen.js | 32 +++++++++++----- src/features/Shared/SettingsScreen.js | 53 +++++++++++++-------------- 2 files changed, 48 insertions(+), 37 deletions(-) diff --git a/src/features/Shared/EntityScreen.js b/src/features/Shared/EntityScreen.js index 0c418838..72b6baa8 100644 --- a/src/features/Shared/EntityScreen.js +++ b/src/features/Shared/EntityScreen.js @@ -22,10 +22,12 @@ const EntityScreen = ({ navigation, route }) => { const isMounted = useMountedState(); const actionSheetRef = createRef(); const fleetbase = useFleetbase(); + const internalInstance = useFleetbase('int/v1'); const [locale] = useLocale(); const [order, setOrder] = useState(new Order(_order, fleetbase.getAdapter())); const [entity, setEntity] = useState(new Entity(_entity, fleetbase.getAdapter())); + const [isEntityFieldsEditable, setEntityFieldsEditable] = useState(); const [isLoading, setIsLoading] = useState(false); const [isRefreshing, setIsRefreshing] = useState(false); @@ -49,6 +51,14 @@ const EntityScreen = ({ navigation, route }) => { }); }; + useEffect(() => { + const adapter = internalInstance.getAdapter(); + adapter.get('fleet-ops/settings/entity-editing-settings').then(res => { + const editableEntityFields = res.isEntityFieldsEditable; + setEntityFieldsEditable(editableEntityFields); + }); + }); + return ( @@ -301,16 +311,18 @@ const EntityScreen = ({ navigation, route }) => { - { - navigation.navigate('SettingsScreen', { data: entity.getAttributes() }); - }} - disabled={isLoading} - style={tailwind('flex py-2 px-2')}> - - {translate('Core.SettingsScreen.update')} - - + {isEntityFieldsEditable ? ( + { + navigation.navigate('SettingsScreen', { data: entity.getAttributes() }); + }} + disabled={isLoading} + style={tailwind('flex py-2 px-2')}> + + {translate('Core.SettingsScreen.update')} + + + ) : null} diff --git a/src/features/Shared/SettingsScreen.js b/src/features/Shared/SettingsScreen.js index 63b22210..a4e08566 100644 --- a/src/features/Shared/SettingsScreen.js +++ b/src/features/Shared/SettingsScreen.js @@ -43,34 +43,33 @@ const SettingsScreen = ({ route }) => { const saveEntitySettings = () => { setIsLoading(true); const adapter = fleetbase.getAdapter(); - { - adapter - .put(`entities/${routeParam.data.id}`, { - name: value?.name, - description: value?.description, - sku: value?.sku, - height: value?.height, - width: value?.width, - length: value?.length, - weight: value?.weight, - declared_value: value?.declared_value, - sale_price: value?.sale_price, - }) - .then(() => { - Toast.show({ - type: 'success', - text1: `Successfully updated`, - }); - setIsLoading(false); - // Refresh data here - fetchSettings(); - navigation.goBack(); - }) - .catch(error => { - setIsLoading(false); - logError(error); + adapter + .put(`entities/${routeParam.data.id}`, { + name: value?.name, + description: value?.description, + sku: value?.sku, + height: value?.height, + width: value?.width, + length: value?.length, + weight: value?.weight, + declared_value: value?.declared_value, + sale_price: value?.sale_price, + }) + .then(() => { + Toast.show({ + type: 'success', + text1: `Successfully updated`, }); - } + + setIsLoading(false); + fetchSettings(); + + navigation.goBack(); + }) + .catch(error => { + setIsLoading(false); + logError(error); + }); }; return (