Frontend first draft

This commit is contained in:
Arseni
2025-11-13 15:06:15 +03:00
parent e47f343afb
commit ddb54ddfdc
504 changed files with 25498 additions and 1 deletions

View File

@@ -0,0 +1,26 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:pshared/provider/accounts/employees.dart';
import 'package:pweb/widgets/employee/avatar/widget.dart';
class EmployeeAvatarProvider extends StatelessWidget {
final String? employeeRef;
final double? radius;
const EmployeeAvatarProvider({
super.key,
this.employeeRef,
this.radius,
});
@override
Widget build(BuildContext context) => Consumer<EmployeesProvider>(builder: (context, provider, _) => EmployeeAvatar(
radius: radius,
avatarUrl: provider.getEmployee(employeeRef)?.avatarUrl,
employeeName: provider.getEmployee(employeeRef)?.name ?? '',
));
}

View File

@@ -0,0 +1,29 @@
import 'package:flutter/material.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:pshared/utils/name_initials.dart';
class EmployeeAvatar extends StatelessWidget {
final String? avatarUrl;
final String employeeName;
final double? radius;
const EmployeeAvatar({
super.key,
this.avatarUrl,
required this.employeeName,
this.radius,
});
@override
Widget build(BuildContext context) => CircleAvatar(
radius: radius,
backgroundColor: Theme.of(context).colorScheme.primary.withAlpha(26),
backgroundImage: avatarUrl != null ? CachedNetworkImageProvider(avatarUrl!) : null,
child: avatarUrl == null
? Text(getNameInitials(employeeName), style: Theme.of(context).textTheme.bodyMedium)
: null,
);
}