replace: swap prosappweb content for prosapp_web_app (more complete version)
prosapp_web_app has chat, dashboard, calendar, support, 13 providers and Fluro URL routing. Keep Dockerfile + nginx.conf from previous prosappweb. Upgrade google_fonts 6.2.1 → 8.1.0 (Dart 3.12 compat fix). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
74a4f41902
commit
15175c1b91
@@ -0,0 +1,46 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class CustomOutlinedButton extends StatelessWidget {
|
||||
final Function onPressed;
|
||||
final String text;
|
||||
final Color color;
|
||||
final bool isFilled;
|
||||
|
||||
const CustomOutlinedButton({
|
||||
super.key,
|
||||
required this.onPressed,
|
||||
required this.text,
|
||||
this.color = Colors.blue,
|
||||
this.isFilled = false,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return OutlinedButton(
|
||||
style: ButtonStyle(
|
||||
shape: WidgetStateProperty.all(
|
||||
RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(30),
|
||||
),
|
||||
),
|
||||
side: WidgetStateProperty.all(
|
||||
BorderSide(color: color),
|
||||
),
|
||||
backgroundColor: WidgetStateProperty.all(
|
||||
isFilled ? color.withOpacity(0.3) : Colors.transparent,
|
||||
),
|
||||
),
|
||||
onPressed: () => onPressed(),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 10),
|
||||
child: Text(
|
||||
text,
|
||||
style: const TextStyle(
|
||||
fontSize: 16,
|
||||
color: Colors.blue,
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class LinkText extends StatefulWidget {
|
||||
final String text;
|
||||
final Function()? onPressed;
|
||||
|
||||
const LinkText({super.key, required this.text, this.onPressed});
|
||||
|
||||
@override
|
||||
State<LinkText> createState() => _LinkTextState();
|
||||
}
|
||||
|
||||
class _LinkTextState extends State<LinkText> {
|
||||
bool isHover = false;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return GestureDetector(
|
||||
onTap: () {
|
||||
if (widget.onPressed != null) widget.onPressed!();
|
||||
},
|
||||
child: MouseRegion(
|
||||
cursor: SystemMouseCursors.click,
|
||||
onEnter: (_) => setState(() => isHover = true),
|
||||
onExit: (_) => setState(() => isHover = false),
|
||||
child: Container(
|
||||
margin: const EdgeInsets.symmetric(vertical: 5, horizontal: 10),
|
||||
child: Text(
|
||||
widget.text,
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
color: Colors.grey[700],
|
||||
decoration: isHover ? TextDecoration.underline : null,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user