submit method
Submits the DirectLink.
Implementation
Future<void> submit() async {
state.focus.unfocus();
DirectLinkSlug? slug;
if (state.text.isNotEmpty) {
try {
slug = DirectLinkSlug(state.text);
} on FormatException {
state.error.value = 'err_invalid_symbols_in_link'.l10n;
}
}
if (slug == null) {
return;
}
if (state.error.value == null || state.resubmitOnError.isTrue) {
state.editable.value = false;
state.status.value = RxStatus.loading();
try {
await onAdded?.call(slug);
pop?.call();
} on UpdateDirectLinkException catch (e) {
state.error.value = e.toMessage();
} on UpdateGroupDirectLinkException catch (e) {
state.error.value = e.toMessage();
} catch (e) {
state.resubmitOnError.value = true;
state.error.value = 'err_data_transfer'.l10n;
state.unsubmit();
rethrow;
} finally {
state.status.value = RxStatus.empty();
state.editable.value = true;
}
}
}