close AF-2685
When the button is disabled, the frontmost icon is not positioned correctly. This commit is to fix the icon position.

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Style**
- Improved the layout of the share menu trigger text by aligning its content vertically and adding spacing between elements for a cleaner appearance.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
close AF-2615
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Enhancements**
- Improved the share menu's user experience by showing a loading indicator and disabling the public page button during revalidation. This prevents user interaction while the share info is updating.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
close AF-2659

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Style**
- Updated the share button to use the primary styling for improved visual emphasis.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Previously, we used `useLiveData(guardService.can$())` to get the guard result, but `guardService.can$()` will request the server to revalidate the permission when calling it, will cause additional network requests when re-render.
This pr make a new hook `useGuard` to fix this problem.
And the side effect in `can$` is moved to `revalidateCan()` to make that the subscribe method is pure