redesigned payment page + a lot of fixes
This commit is contained in:
79
frontend/pweb/lib/pages/invitations/page/view.dart
Normal file
79
frontend/pweb/lib/pages/invitations/page/view.dart
Normal file
@@ -0,0 +1,79 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import 'package:pshared/models/resources.dart';
|
||||
import 'package:pshared/provider/permissions.dart';
|
||||
|
||||
import 'package:pweb/controllers/invitations/page.dart';
|
||||
import 'package:pweb/pages/invitations/widgets/header.dart';
|
||||
import 'package:pweb/pages/invitations/widgets/form/form.dart';
|
||||
import 'package:pweb/pages/invitations/widgets/list/list.dart';
|
||||
import 'package:pweb/pages/loader.dart';
|
||||
|
||||
import 'package:pweb/generated/i18n/app_localizations.dart';
|
||||
|
||||
|
||||
class InvitationsPageView extends StatelessWidget {
|
||||
final GlobalKey<FormState> formKey;
|
||||
final TextEditingController emailController;
|
||||
final TextEditingController firstNameController;
|
||||
final TextEditingController lastNameController;
|
||||
final TextEditingController messageController;
|
||||
final VoidCallback onSubmit;
|
||||
|
||||
const InvitationsPageView({
|
||||
super.key,
|
||||
required this.formKey,
|
||||
required this.emailController,
|
||||
required this.firstNameController,
|
||||
required this.lastNameController,
|
||||
required this.messageController,
|
||||
required this.onSubmit,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final loc = AppLocalizations.of(context)!;
|
||||
final permissions = context.watch<PermissionsProvider>();
|
||||
final canCreateRoles = permissions.canCreate(ResourceType.roles);
|
||||
final ui = context.watch<InvitationsPageController>();
|
||||
|
||||
if (!permissions.canRead(ResourceType.invitations)) {
|
||||
return PageViewLoader(
|
||||
child: Center(child: Text(loc.errorAccessDenied)),
|
||||
);
|
||||
}
|
||||
|
||||
return PageViewLoader(
|
||||
child: SafeArea(
|
||||
child: SingleChildScrollView(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 16),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
InvitationsHeader(loc: loc),
|
||||
const SizedBox(height: 16),
|
||||
InvitationsForm(
|
||||
formKey: formKey,
|
||||
emailController: emailController,
|
||||
firstNameController: firstNameController,
|
||||
lastNameController: lastNameController,
|
||||
messageController: messageController,
|
||||
canCreateRoles: canCreateRoles,
|
||||
expiryDays: ui.expiryDays,
|
||||
onExpiryChanged: ui.setExpiryDays,
|
||||
selectedRoleRef: ui.selectedRoleRef,
|
||||
onRoleChanged: ui.setSelectedRoleRef,
|
||||
canCreate: permissions.canCreate(ResourceType.invitations),
|
||||
onSubmit: onSubmit,
|
||||
),
|
||||
const SizedBox(height: 24),
|
||||
const InvitationsList(),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user