import 'package:flutter/material.dart'; import 'package:cashumit/utils/app_text_styles.dart'; /// Selector untuk akun sumber (revenue) — dipakai per-grup. /// Tanpa label "Dari:" — hanya chip dropdown saja. class SourceAccountSelector extends StatelessWidget { final String sourceAccount; final VoidCallback onSelectSource; const SourceAccountSelector({ super.key, required this.sourceAccount, required this.onSelectSource, }); @override Widget build(BuildContext context) { return GestureDetector( onTap: onSelectSource, child: Container( width: double.infinity, padding: const EdgeInsets.symmetric(horizontal: 8.0, vertical: 6.0), decoration: BoxDecoration( border: Border.all(color: Colors.grey), borderRadius: BorderRadius.circular(4.0), ), child: Row( children: [ Expanded( child: Text( sourceAccount, style: CourierStyles.base, overflow: TextOverflow.ellipsis, ), ), const Icon(Icons.arrow_drop_down, size: 16), ], ), ), ); } } /// Selector untuk akun tujuan (asset) — dipakai di level struk (dibagikan). class DestinationAccountSelector extends StatelessWidget { final String destinationAccount; final VoidCallback onSelectDestination; const DestinationAccountSelector({ super.key, required this.destinationAccount, required this.onSelectDestination, }); @override Widget build(BuildContext context) { return _AccountChip( label: 'Ke:', value: destinationAccount, onTap: onSelectDestination, ); } } class _AccountChip extends StatelessWidget { final String label; final String value; final VoidCallback onTap; const _AccountChip({ required this.label, required this.value, required this.onTap, }); @override Widget build(BuildContext context) { return Row( crossAxisAlignment: CrossAxisAlignment.center, children: [ Text(label, style: CourierStyles.bold), const SizedBox(width: 8), Expanded( child: GestureDetector( onTap: onTap, child: Container( padding: const EdgeInsets.symmetric( horizontal: 8.0, vertical: 6.0), decoration: BoxDecoration( border: Border.all(color: Colors.grey), borderRadius: BorderRadius.circular(4.0), ), child: Row( children: [ Expanded( child: Text( value, style: CourierStyles.base, overflow: TextOverflow.ellipsis, ), ), const Icon(Icons.arrow_drop_down, size: 16), ], ), ), ), ), ], ); } } /// Widget lama (compat) — menampilkan Dari + Ke berdampingan. /// Tetap dipertahankan agar tidak merusak import lain. class AccountSettingsWidget extends StatelessWidget { final String sourceAccount; final String destinationAccount; final VoidCallback onSelectSource; final VoidCallback onSelectDestination; const AccountSettingsWidget({ super.key, required this.sourceAccount, required this.destinationAccount, required this.onSelectSource, required this.onSelectDestination, }); @override Widget build(BuildContext context) { return Container( width: double.infinity, padding: const EdgeInsets.all(8.0), color: Colors.white, child: Row( children: [ Expanded( child: SourceAccountSelector( sourceAccount: sourceAccount, onSelectSource: onSelectSource, ), ), const SizedBox(width: 16), Expanded( child: DestinationAccountSelector( destinationAccount: destinationAccount, onSelectDestination: onSelectDestination, ), ), ], ), ); } }