1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- import 'package:app_flowy/workspace/application/app/app_bloc.dart';
- import 'package:expandable/expandable.dart';
- import 'package:flowy_infra_ui/widget/spacing.dart';
- import 'package:flowy_infra_ui/style_widget/text_button.dart';
- import 'package:flowy_sdk/protobuf/flowy-workspace/app_create.pb.dart';
- import 'package:flowy_sdk/protobuf/flowy-workspace/view_create.pb.dart';
- import 'package:flutter/material.dart';
- import 'package:flutter_bloc/flutter_bloc.dart';
- import 'app_page.dart';
- class AppHeader extends StatelessWidget {
- final App app;
- const AppHeader(
- this.app, {
- Key? key,
- }) : super(key: key);
- @override
- Widget build(BuildContext context) {
- return Row(
- mainAxisAlignment: MainAxisAlignment.center,
- crossAxisAlignment: CrossAxisAlignment.center,
- children: [
- InkWell(
- onTap: () {
- ExpandableController.of(context,
- rebuildOnChange: false, required: true)
- ?.toggle();
- },
- child: ExpandableIcon(
- theme: ExpandableThemeData(
- expandIcon: Icons.arrow_drop_up,
- collapseIcon: Icons.arrow_drop_down,
- iconColor: Colors.black,
- iconSize: AppPageSize.expandedIconSize,
- iconPadding: EdgeInsets.zero,
- hasIcon: false,
- ),
- ),
- ),
- HSpace(AppPageSize.expandedIconRightSpace),
- Expanded(
- child: FlowyTextButton(
- app.name,
- onPressed: () {
- debugPrint('show app');
- },
- ),
- ),
- // FlowyIconButton(
- // icon: const Icon(Icons.add),
- // onPressed: () {
- // debugPrint('add view');
- // FlowyOverlay.of(context)
- // .insert(widget: Text('test'), identifier: 'identifier');
- // },
- // ),
- PopupMenuButton(
- iconSize: 20,
- tooltip: 'create new view',
- icon: const Icon(Icons.add),
- padding: EdgeInsets.zero,
- onSelected: (viewType) =>
- _createView(viewType as ViewType, context),
- itemBuilder: (context) => menuItemBuilder())
- ],
- );
- }
- List<PopupMenuEntry> menuItemBuilder() {
- return ViewType.values
- .where((element) => element != ViewType.Blank)
- .map((ty) {
- return PopupMenuItem<ViewType>(
- value: ty,
- child: Row(
- children: <Widget>[Text(ty.name)],
- ));
- }).toList();
- }
- void _createView(ViewType viewType, BuildContext context) {
- context.read<AppBloc>().add(AppEvent.createView("New view", "", viewType));
- }
- }
|