fix(mobile): hide asset description text field if user is not owner (#17442)

* fix(mobile): hide asset description text field if user is not owner

* If user is not the owner and asset has no description then hide the text field

* Apply suggestions from code review

Co-authored-by: Alex <alex.tran1502@gmail.com>

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
This commit is contained in:
Gagan Yadav 2025-04-08 19:48:33 +05:30 committed by GitHub
parent fdbe6d649f
commit 75bc32b47b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -34,17 +34,24 @@ class DescriptionInput extends HookConsumerWidget {
final owner = ref.watch(currentUserProvider);
final hasError = useState(false);
final assetWithExif = ref.watch(assetDetailProvider(asset));
final hasDescription = useState(false);
final isOwner = fastHash(owner?.id ?? '') == asset.ownerId;
useEffect(
() {
assetService
.getDescription(asset)
.then((value) => controller.text = value);
assetService.getDescription(asset).then((value) {
controller.text = value;
hasDescription.value = value.isNotEmpty;
});
return null;
},
[assetWithExif.value],
);
if (!isOwner && !hasDescription.value) {
return const SizedBox.shrink();
}
submitDescription(String description) async {
hasError.value = false;
try {
@ -82,7 +89,7 @@ class DescriptionInput extends HookConsumerWidget {
}
return TextField(
enabled: fastHash(owner?.id ?? '') == asset.ownerId,
enabled: isOwner,
focusNode: focusNode,
onTap: () => isFocus.value = true,
onChanged: (value) {