mirror of
https://github.com/immich-app/immich.git
synced 2025-07-17 20:38:25 +02:00
feat(mobile): shared-links (#4490)
* add shared links page * feat(mobile): shared link items * feat(mobile): create / edit shared links page * server: add changeExpiryTime to SharedLinkEditDto * fix(mobile): edit expiry to never * mobile: add icon when shares list is empty * mobile: create new share from album / timeline * mobile: add translation texts * mobile: minor ui fixes * fix: handle serverURL with /api path * mobile: show share link on successful creation * mobile: shared links list - 2 column layout * mobile: use sharedlink pod class instead of dto * mobile: show error on link creation * mobile: show share icon only when remote assets are in selection * mobile: use server endpoint instead of server url * styling * styling --------- Co-authored-by: shalong-tanwen <139912620+shalong-tanwen@users.noreply.github.com> Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
This commit is contained in:
parent
cf08ac7538
commit
8dcc01b2be
24 changed files with 1450 additions and 84 deletions
mobile/lib/routing
|
@ -320,6 +320,25 @@ class _$AppRouter extends RootStackRouter {
|
|||
child: const TrashPage(),
|
||||
);
|
||||
},
|
||||
SharedLinkRoute.name: (routeData) {
|
||||
return MaterialPageX<dynamic>(
|
||||
routeData: routeData,
|
||||
child: const SharedLinkPage(),
|
||||
);
|
||||
},
|
||||
SharedLinkEditRoute.name: (routeData) {
|
||||
final args = routeData.argsAs<SharedLinkEditRouteArgs>(
|
||||
orElse: () => const SharedLinkEditRouteArgs());
|
||||
return MaterialPageX<dynamic>(
|
||||
routeData: routeData,
|
||||
child: SharedLinkEditPage(
|
||||
key: args.key,
|
||||
existingLink: args.existingLink,
|
||||
assetsList: args.assetsList,
|
||||
albumId: args.albumId,
|
||||
),
|
||||
);
|
||||
},
|
||||
HomeRoute.name: (routeData) {
|
||||
return MaterialPageX<dynamic>(
|
||||
routeData: routeData,
|
||||
|
@ -640,6 +659,22 @@ class _$AppRouter extends RootStackRouter {
|
|||
duplicateGuard,
|
||||
],
|
||||
),
|
||||
RouteConfig(
|
||||
SharedLinkRoute.name,
|
||||
path: '/shared-link-page',
|
||||
guards: [
|
||||
authGuard,
|
||||
duplicateGuard,
|
||||
],
|
||||
),
|
||||
RouteConfig(
|
||||
SharedLinkEditRoute.name,
|
||||
path: '/shared-link-edit-page',
|
||||
guards: [
|
||||
authGuard,
|
||||
duplicateGuard,
|
||||
],
|
||||
),
|
||||
];
|
||||
}
|
||||
|
||||
|
@ -1432,6 +1467,62 @@ class TrashRoute extends PageRouteInfo<void> {
|
|||
static const String name = 'TrashRoute';
|
||||
}
|
||||
|
||||
/// generated route for
|
||||
/// [SharedLinkPage]
|
||||
class SharedLinkRoute extends PageRouteInfo<void> {
|
||||
const SharedLinkRoute()
|
||||
: super(
|
||||
SharedLinkRoute.name,
|
||||
path: '/shared-link-page',
|
||||
);
|
||||
|
||||
static const String name = 'SharedLinkRoute';
|
||||
}
|
||||
|
||||
/// generated route for
|
||||
/// [SharedLinkEditPage]
|
||||
class SharedLinkEditRoute extends PageRouteInfo<SharedLinkEditRouteArgs> {
|
||||
SharedLinkEditRoute({
|
||||
Key? key,
|
||||
SharedLink? existingLink,
|
||||
List<String>? assetsList,
|
||||
String? albumId,
|
||||
}) : super(
|
||||
SharedLinkEditRoute.name,
|
||||
path: '/shared-link-edit-page',
|
||||
args: SharedLinkEditRouteArgs(
|
||||
key: key,
|
||||
existingLink: existingLink,
|
||||
assetsList: assetsList,
|
||||
albumId: albumId,
|
||||
),
|
||||
);
|
||||
|
||||
static const String name = 'SharedLinkEditRoute';
|
||||
}
|
||||
|
||||
class SharedLinkEditRouteArgs {
|
||||
const SharedLinkEditRouteArgs({
|
||||
this.key,
|
||||
this.existingLink,
|
||||
this.assetsList,
|
||||
this.albumId,
|
||||
});
|
||||
|
||||
final Key? key;
|
||||
|
||||
final SharedLink? existingLink;
|
||||
|
||||
final List<String>? assetsList;
|
||||
|
||||
final String? albumId;
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'SharedLinkEditRouteArgs{key: $key, existingLink: $existingLink, assetsList: $assetsList, albumId: $albumId}';
|
||||
}
|
||||
}
|
||||
|
||||
/// generated route for
|
||||
/// [HomePage]
|
||||
class HomeRoute extends PageRouteInfo<void> {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue