123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- import 'package:fis_ui/index.dart';
- import 'package:fis_ui/interface/interactive_container.dart';
- import 'package:flutter/material.dart';
- class CustomChildInputOptionWidget extends StatelessWidget {
- final bool isActive;
- final String value;
- final Widget? suffixWidget;
- final VoidCallback onClick;
- final ValueChanged<String> onInputChanged;
- const CustomChildInputOptionWidget({
- super.key,
- required this.isActive,
- required this.value,
- required this.onClick,
- required this.onInputChanged,
- this.suffixWidget,
- });
- @override
- Widget build(BuildContext context) {
- return CustomChildOptionWidget(
- isActive: isActive,
- onClick: onClick,
- child: _buildInput(context),
- );
- }
- Widget _buildInput(BuildContext context) {
- final children = <Widget>[];
- children.add(
- FBorderInput(
- controller: TextEditingController(text: value),
- onTap: () {
- onClick.call();
- },
- onChanged: (value) {
- onInputChanged.call(value);
- },
- ),
- );
- if (suffixWidget != null) {
- children.add(suffixWidget!);
- }
- return Row(
- children: children,
- mainAxisAlignment: MainAxisAlignment.center,
- );
- }
- }
- class CustomChildOptionDivider extends StatelessWidget {
- const CustomChildOptionDivider({super.key});
- @override
- Widget build(BuildContext context) {
- return Divider(color: Colors.grey.shade100, height: 1);
- }
- }
- class CustomChildTextOptionWidget extends StatelessWidget {
- final bool isActive;
- final String text;
- final VoidCallback onClick;
- const CustomChildTextOptionWidget({
- super.key,
- required this.isActive,
- required this.text,
- required this.onClick,
- });
- @override
- Widget build(BuildContext context) {
- return CustomChildOptionWidget(
- child: Text(text),
- isActive: isActive,
- onClick: onClick,
- );
- }
- }
- class CustomChildOptionWidget extends StatelessWidget {
- final bool isActive;
- final Widget child;
- final VoidCallback onClick;
- const CustomChildOptionWidget({
- super.key,
- required this.isActive,
- required this.child,
- required this.onClick,
- });
- @override
- Widget build(BuildContext context) {
- return Material(
- child: Container(
- margin: const EdgeInsets.only(bottom: 4),
- child: GestureDetector(
- onTap: () {
- onClick.call();
- },
- child: Container(
- padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 18),
- alignment: Alignment.center,
- color: isActive
- ? Theme.of(context).secondaryHeaderColor
- : Colors.white,
- child: child,
- ),
- ),
- ),
- );
- }
- }
- class FPlaceHolderInteractiveContainer extends FStatelessWidget
- implements FInteractiveContainer {
- const FPlaceHolderInteractiveContainer({super.key});
- @override
- FWidget build(BuildContext context) {
- return const FSizedBox();
- }
- @override
- String get pageName => "";
- }
|