mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
add hover
This commit is contained in:
parent
6394ea2dd8
commit
5d520d7217
2
app_flowy/.vscode/launch.json
vendored
2
app_flowy/.vscode/launch.json
vendored
@ -9,7 +9,7 @@
|
|||||||
"request": "launch",
|
"request": "launch",
|
||||||
"program": "${workspaceRoot}/lib/main.dart",
|
"program": "${workspaceRoot}/lib/main.dart",
|
||||||
"type": "dart",
|
"type": "dart",
|
||||||
"preLaunchTask": "BuildRust",
|
"preLaunchTask": "build_flowy_sdk",
|
||||||
"cwd": "${workspaceRoot}"
|
"cwd": "${workspaceRoot}"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
21
app_flowy/.vscode/tasks.json
vendored
21
app_flowy/.vscode/tasks.json
vendored
@ -1,8 +1,6 @@
|
|||||||
{
|
{
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"tasks": [
|
// https://code.visualstudio.com/docs/editor/tasks
|
||||||
{
|
|
||||||
// https://code.visualstudio.com/docs/editor/tasks
|
|
||||||
//https://gist.github.com/deadalusai/9e13e36d61ec7fb72148
|
//https://gist.github.com/deadalusai/9e13e36d61ec7fb72148
|
||||||
|
|
||||||
// ${workspaceRoot}: the root folder of the team
|
// ${workspaceRoot}: the root folder of the team
|
||||||
@ -11,7 +9,8 @@
|
|||||||
// ${fileDirname}: the current opened file's dirname
|
// ${fileDirname}: the current opened file's dirname
|
||||||
// ${fileExtname}: the current opened file's extension
|
// ${fileExtname}: the current opened file's extension
|
||||||
// ${cwd}: the current working directory of the spawned process
|
// ${cwd}: the current working directory of the spawned process
|
||||||
|
"tasks": [
|
||||||
|
{
|
||||||
"type": "shell",
|
"type": "shell",
|
||||||
"command": "sh ./scripts/build_sdk.sh",
|
"command": "sh ./scripts/build_sdk.sh",
|
||||||
"group": "build",
|
"group": "build",
|
||||||
@ -21,7 +20,19 @@
|
|||||||
// "problemMatcher": [
|
// "problemMatcher": [
|
||||||
// "$rustc"
|
// "$rustc"
|
||||||
// ],
|
// ],
|
||||||
"label": "BuildRust"
|
"label": "build_flowy_sdk"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "shell",
|
||||||
|
"command": "sh ./scripts/code_gen.sh",
|
||||||
|
"group": "build",
|
||||||
|
"options": {
|
||||||
|
"cwd": "${workspaceFolder}/../"
|
||||||
|
},
|
||||||
|
"problemMatcher": [
|
||||||
|
"$rustc"
|
||||||
|
],
|
||||||
|
"label": "generate events"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
@ -76,10 +76,7 @@ class AppWidget extends MenuItem {
|
|||||||
hasIcon: false,
|
hasIcon: false,
|
||||||
),
|
),
|
||||||
header: AppHeader(app),
|
header: AppHeader(app),
|
||||||
expanded: Padding(
|
expanded: child,
|
||||||
padding: EdgeInsets.only(left: AppWidgetSize.expandedPadding),
|
|
||||||
child: child,
|
|
||||||
),
|
|
||||||
collapsed: const SizedBox(),
|
collapsed: const SizedBox(),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import 'package:app_flowy/workspace/presentation/view/view_widget.dart';
|
import 'package:app_flowy/workspace/presentation/view/view_widget.dart';
|
||||||
import 'package:flowy_infra/flowy_logger.dart';
|
import 'package:flowy_infra/flowy_logger.dart';
|
||||||
import 'package:flowy_sdk/protobuf/flowy-workspace/view_create.pb.dart';
|
import 'package:flowy_sdk/protobuf/flowy-workspace/view_create.pb.dart';
|
||||||
|
import 'package:flowy_infra_ui/style_widget/styled_hover.dart';
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:dartz/dartz.dart';
|
import 'package:dartz/dartz.dart';
|
||||||
@ -26,11 +27,15 @@ class ViewList extends StatelessWidget {
|
|||||||
var targetViews = views.map((view) {
|
var targetViews = views.map((view) {
|
||||||
return Padding(
|
return Padding(
|
||||||
padding: const EdgeInsets.symmetric(vertical: 6),
|
padding: const EdgeInsets.symmetric(vertical: 6),
|
||||||
child: ViewWidget(
|
child: StyledHover(
|
||||||
view: view,
|
color: Colors.red,
|
||||||
|
borderRadius: BorderRadius.circular(8),
|
||||||
|
child: ViewWidget(
|
||||||
|
view: view,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}).toList(growable: true);
|
}).toList(growable: false);
|
||||||
return targetViews;
|
return targetViews;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import 'package:app_flowy/startup/startup.dart';
|
import 'package:app_flowy/startup/startup.dart';
|
||||||
import 'package:app_flowy/workspace/domain/image.dart';
|
import 'package:app_flowy/workspace/domain/image.dart';
|
||||||
import 'package:app_flowy/workspace/domain/page_stack/page_stack.dart';
|
import 'package:app_flowy/workspace/domain/page_stack/page_stack.dart';
|
||||||
|
import 'package:app_flowy/workspace/presentation/app/app_widget.dart';
|
||||||
import 'package:flowy_infra_ui/widget/spacing.dart';
|
import 'package:flowy_infra_ui/widget/spacing.dart';
|
||||||
import 'package:flowy_sdk/protobuf/flowy-workspace/view_create.pb.dart';
|
import 'package:flowy_sdk/protobuf/flowy-workspace/view_create.pb.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
@ -11,7 +12,15 @@ class ViewWidget extends StatelessWidget {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return InkWell(onTap: _openView(context), child: buildContent());
|
final contentPadding = EdgeInsets.only(
|
||||||
|
left: AppWidgetSize.expandedPadding, top: 5, bottom: 5, right: 5);
|
||||||
|
return InkWell(
|
||||||
|
onTap: _openView(context),
|
||||||
|
child: Padding(
|
||||||
|
padding: contentPadding,
|
||||||
|
child: buildContent(),
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Row buildContent() {
|
Row buildContent() {
|
||||||
|
@ -111,6 +111,7 @@ class EditorController extends ChangeNotifier {
|
|||||||
Delta? delta;
|
Delta? delta;
|
||||||
if (length > 0 || data is! String || data.isNotEmpty) {
|
if (length > 0 || data is! String || data.isNotEmpty) {
|
||||||
delta = document.replace(index, length, data);
|
delta = document.replace(index, length, data);
|
||||||
|
print(delta);
|
||||||
var shouldRetainDelta = toggledStyle.isNotEmpty &&
|
var shouldRetainDelta = toggledStyle.isNotEmpty &&
|
||||||
delta.isNotEmpty &&
|
delta.isNotEmpty &&
|
||||||
delta.length <= 2 &&
|
delta.length <= 2 &&
|
||||||
|
@ -0,0 +1,59 @@
|
|||||||
|
import 'package:flowy_infra_ui/widget/mouse_hover_builder.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flowy_infra/time/duration.dart';
|
||||||
|
|
||||||
|
class StyledHover extends StatelessWidget {
|
||||||
|
final Color color;
|
||||||
|
final Color borderColor;
|
||||||
|
final double borderWidth;
|
||||||
|
final Widget child;
|
||||||
|
final BorderRadius borderRadius;
|
||||||
|
|
||||||
|
const StyledHover({
|
||||||
|
Key? key,
|
||||||
|
required this.color,
|
||||||
|
required this.child,
|
||||||
|
this.borderColor = Colors.transparent,
|
||||||
|
this.borderWidth = 0,
|
||||||
|
this.borderRadius = BorderRadius.zero,
|
||||||
|
}) : super(key: key);
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return MouseHoverBuilder(
|
||||||
|
builder: (_, isHovered) => AnimatedContainer(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border: Border.all(color: borderColor, width: borderWidth),
|
||||||
|
color: isHovered ? color : Colors.transparent,
|
||||||
|
borderRadius: borderRadius,
|
||||||
|
),
|
||||||
|
duration: .1.seconds,
|
||||||
|
child: child,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// @override
|
||||||
|
// Widget build(BuildContext context) {
|
||||||
|
// return GestureDetector(
|
||||||
|
// behavior: HitTestBehavior.translucent,
|
||||||
|
// onTap: () {
|
||||||
|
// context
|
||||||
|
// .read<HomeBloc>()
|
||||||
|
// .add(HomeEvent.setEditPannel(CellEditPannelContext()));
|
||||||
|
// },
|
||||||
|
// child: MouseHoverBuilder(
|
||||||
|
// builder: (_, isHovered) => Container(
|
||||||
|
// width: width,
|
||||||
|
// decoration: CellDecoration.box(
|
||||||
|
// color: isHovered ? Colors.red.withOpacity(.1) : Colors.transparent,
|
||||||
|
// ),
|
||||||
|
// padding: EdgeInsets.symmetric(
|
||||||
|
// vertical: GridInsets.vertical, horizontal: GridInsets.horizontal),
|
||||||
|
// child: child,
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// );
|
||||||
|
// }
|
@ -12,5 +12,4 @@ rustup show
|
|||||||
# 2. ~/.bashrc
|
# 2. ~/.bashrc
|
||||||
# 3. ~/.profile
|
# 3. ~/.profile
|
||||||
# 4. ~/.zshrc
|
# 4. ~/.zshrc
|
||||||
cargo make desktop
|
cargo make desktop
|
||||||
|
|
3
scripts/code_gen.sh
Executable file
3
scripts/code_gen.sh
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#!/usr/bin/env fish
|
||||||
|
cargo make gen_dart_event
|
Loading…
Reference in New Issue
Block a user