← back to donspeedie__realdeal

Function bodies 338 total

All specs Real LLM only Function bodies
_DescriptionIIWidgetState class · dart · L20-L103 (84 LOC)
app/lib/components/description_i_i_widget.dart
class _DescriptionIIWidgetState extends State<DescriptionIIWidget> {
  late DescriptionIIModel _model;

  @override
  void setState(VoidCallback callback) {
    super.setState(callback);
    _model.onUpdate();
  }

  @override
  void initState() {
    super.initState();
    _model = createModel(context, () => DescriptionIIModel());

    WidgetsBinding.instance.addPostFrameCallback((_) => safeSetState(() {}));
  }

  @override
  void dispose() {
    _model.maybeDispose();

    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: EdgeInsetsDirectional.fromSTEB(16.0, 0.0, 16.0, 8.0),
      child: Container(
        width: double.infinity,
        decoration: BoxDecoration(
          color: Colors.white,
          boxShadow: [
            BoxShadow(
              blurRadius: 2.0,
              color: Color(0x520E151B),
              offset: Offset(
                0.0,
                1.0,
              ),
            )
          ],
  
DetailComponentSearchNonEditableWidget class · dart · L16-L147 (132 LOC)
app/lib/components/detail_component_search_non_editable_widget.dart
class DetailComponentSearchNonEditableWidget extends StatefulWidget {
  const DetailComponentSearchNonEditableWidget({
    super.key,
    this.image,
    this.impValue,
    this.ttlValue,
    this.dwnPmt,
    this.address,
    this.netRoi,
    this.method,
    this.lvgArea,
    this.purchClosedDate,
    this.beds,
    this.lotAreaValue,
    this.loanPayments,
    this.loanFees,
    this.pptyTaxIns,
    this.baths,
    this.permitsFees,
    this.improvements,
    this.futValue,
    this.sellingCosts,
    this.netReturn,
    this.cashOnCash,
    this.map2,
    this.price,
    this.duration,
    this.saleCloseDate,
    this.totalCosts,
    this.detailUrl,
    this.avgCompSsF,
    this.futureValueSsF,
    required this.zpid,
    required this.selectedFilter,
    this.avgPricePerArea,
    this.futureArea,
    this.futureBeds,
    this.futureBaths,
    this.rentEstimate,
    this.capRate,
    required this.dscr,
    this.irr,
    this.compsAvgPricePerBdrm,
    this.rentPerSqft,
    required 
ImageCardModel class · dart · L6-L21 (16 LOC)
app/lib/components/image_card_model.dart
class ImageCardModel extends FlutterFlowModel<ImageCardWidget> {
  ///  Local state fields for this component.

  int? zestimate;

  ///  State fields for stateful widgets in this component.

  // Stores action output result for [Backend Call - API (GET zestimate)] action in ImageCard widget.
  ApiCallResponse? apiResultyoa;

  @override
  void initState(BuildContext context) {}

  @override
  void dispose() {}
}
ImageCardWidget class · dart · L14-L66 (53 LOC)
app/lib/components/image_card_widget.dart
class ImageCardWidget extends StatefulWidget {
  const ImageCardWidget({
    super.key,
    this.price,
    this.address,
    this.duration,
    this.method,
    this.grossReturn,
    this.totalCosts,
    this.financingCosts,
    this.bedrooms,
    this.baths,
    this.livingArea,
    this.lotArea,
    this.proposedClosedDate,
    this.proposedSaleDate,
    this.imgSrc,
    required this.zpid,
    this.estimatedValue,
    this.downPayment,
    this.yearBuilt,
    this.loanAmount,
    this.detailUrl,
    this.cashNeeded,
    required this.netReturn,
  });

  final int? price;
  final String? address;
  final int? duration;
  final String? method;
  final int? grossReturn;
  final int? totalCosts;
  final int? financingCosts;
  final int? bedrooms;
  final int? baths;
  final int? livingArea;
  final double? lotArea;
  final DateTime? proposedClosedDate;
  final DateTime? proposedSaleDate;
  final String? imgSrc;
  final String? zpid;
  final int? estimatedValue;
  final int? downPayment
MainMapMarkerModel class · dart · L5-L11 (7 LOC)
app/lib/components/main_map_marker_model.dart
class MainMapMarkerModel extends FlutterFlowModel<MainMapMarkerWidget> {
  @override
  void initState(BuildContext context) {}

  @override
  void dispose() {}
}
MainMapMarkerWidget class · dart · L7-L19 (13 LOC)
app/lib/components/main_map_marker_widget.dart
class MainMapMarkerWidget extends StatefulWidget {
  const MainMapMarkerWidget({
    super.key,
    required this.property,
    required this.onPropertyTap,
  });

  final dynamic property;
  final Future Function(String zpid, String method)? onPropertyTap;

  @override
  State<MainMapMarkerWidget> createState() => _MainMapMarkerWidgetState();
}
_MainMapMarkerWidgetState class · dart · L21-L99 (79 LOC)
app/lib/components/main_map_marker_widget.dart
class _MainMapMarkerWidgetState extends State<MainMapMarkerWidget> {
  late MainMapMarkerModel _model;

  @override
  void setState(VoidCallback callback) {
    super.setState(callback);
    _model.onUpdate();
  }

  @override
  void initState() {
    super.initState();
    _model = createModel(context, () => MainMapMarkerModel());

    WidgetsBinding.instance.addPostFrameCallback((_) => safeSetState(() {}));
  }

  @override
  void dispose() {
    _model.maybeDispose();

    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Align(
      alignment: AlignmentDirectional(0.0, 0.0),
      child: InkWell(
        splashColor: Colors.transparent,
        focusColor: Colors.transparent,
        hoverColor: Colors.transparent,
        highlightColor: Colors.transparent,
        onTap: () async {
          logFirebaseEvent('MAIN_MAP_MARKER_Container_c8uql00a_ON_TA');
          logFirebaseEvent('Container_execute_callback');
          await widget.onPropertyTap
Same scanner, your repo: https://repobility.com — Repobility
NoResultsModel class · dart · L5-L11 (7 LOC)
app/lib/components/no_results_model.dart
class NoResultsModel extends FlutterFlowModel<NoResultsWidget> {
  @override
  void initState(BuildContext context) {}

  @override
  void dispose() {}
}
NoResultsWidget class · dart · L7-L12 (6 LOC)
app/lib/components/no_results_widget.dart
class NoResultsWidget extends StatefulWidget {
  const NoResultsWidget({super.key});

  @override
  State<NoResultsWidget> createState() => _NoResultsWidgetState();
}
_NoResultsWidgetState class · dart · L14-L50 (37 LOC)
app/lib/components/no_results_widget.dart
class _NoResultsWidgetState extends State<NoResultsWidget> {
  late NoResultsModel _model;

  @override
  void setState(VoidCallback callback) {
    super.setState(callback);
    _model.onUpdate();
  }

  @override
  void initState() {
    super.initState();
    _model = createModel(context, () => NoResultsModel());

    WidgetsBinding.instance.addPostFrameCallback((_) => safeSetState(() {}));
  }

  @override
  void dispose() {
    _model.maybeDispose();

    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Text(
      'No Results Found!',
      style: FlutterFlowTheme.of(context).bodyMedium.override(
            fontFamily: FlutterFlowTheme.of(context).bodyMediumFamily,
            fontSize: 24.0,
            letterSpacing: 0.0,
            useGoogleFonts: !FlutterFlowTheme.of(context).bodyMediumIsCustom,
          ),
    );
  }
}
Step1DialogueModel class · dart · L5-L11 (7 LOC)
app/lib/components/step1_dialogue_model.dart
class Step1DialogueModel extends FlutterFlowModel<Step1DialogueWidget> {
  @override
  void initState(BuildContext context) {}

  @override
  void dispose() {}
}
Step1DialogueWidget class · dart · L12-L22 (11 LOC)
app/lib/components/step1_dialogue_widget.dart
class Step1DialogueWidget extends StatefulWidget {
  const Step1DialogueWidget({
    super.key,
    this.loadProperty,
  });

  final Future Function()? loadProperty;

  @override
  State<Step1DialogueWidget> createState() => _Step1DialogueWidgetState();
}
Step2DialogueModel class · dart · L5-L11 (7 LOC)
app/lib/components/step2_dialogue_model.dart
class Step2DialogueModel extends FlutterFlowModel<Step2DialogueWidget> {
  @override
  void initState(BuildContext context) {}

  @override
  void dispose() {}
}
Step2DialogueWidget class · dart · L10-L20 (11 LOC)
app/lib/components/step2_dialogue_widget.dart
class Step2DialogueWidget extends StatefulWidget {
  const Step2DialogueWidget({
    super.key,
    required this.loadProperty,
  });

  final Future Function()? loadProperty;

  @override
  State<Step2DialogueWidget> createState() => _Step2DialogueWidgetState();
}
_Step2DialogueWidgetState class · dart · L22-L225 (204 LOC)
app/lib/components/step2_dialogue_widget.dart
class _Step2DialogueWidgetState extends State<Step2DialogueWidget> {
  late Step2DialogueModel _model;

  @override
  void setState(VoidCallback callback) {
    super.setState(callback);
    _model.onUpdate();
  }

  @override
  void initState() {
    super.initState();
    _model = createModel(context, () => Step2DialogueModel());

    WidgetsBinding.instance.addPostFrameCallback((_) => safeSetState(() {}));
  }

  @override
  void dispose() {
    _model.maybeDispose();

    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: EdgeInsetsDirectional.fromSTEB(350.0, 24.0, 0.0, 0.0),
      child: ClipRRect(
        borderRadius: BorderRadius.circular(8.0),
        child: AnimatedContainer(
          duration: Duration(milliseconds: 100),
          curve: Curves.easeInOut,
          width: 300.0,
          constraints: BoxConstraints(
            maxWidth: 300.0,
          ),
          decoration: BoxDecoration(
            color: Flu
Powered by Repobility — scan your code at https://repobility.com
Step3DialogueModel class · dart · L5-L11 (7 LOC)
app/lib/components/step3_dialogue_model.dart
class Step3DialogueModel extends FlutterFlowModel<Step3DialogueWidget> {
  @override
  void initState(BuildContext context) {}

  @override
  void dispose() {}
}
Step3DialogueWidget class · dart · L11-L21 (11 LOC)
app/lib/components/step3_dialogue_widget.dart
class Step3DialogueWidget extends StatefulWidget {
  const Step3DialogueWidget({
    super.key,
    required this.loadProperty,
  });

  final Future Function()? loadProperty;

  @override
  State<Step3DialogueWidget> createState() => _Step3DialogueWidgetState();
}
_Step3DialogueWidgetState class · dart · L23-L274 (252 LOC)
app/lib/components/step3_dialogue_widget.dart
class _Step3DialogueWidgetState extends State<Step3DialogueWidget> {
  late Step3DialogueModel _model;

  @override
  void setState(VoidCallback callback) {
    super.setState(callback);
    _model.onUpdate();
  }

  @override
  void initState() {
    super.initState();
    _model = createModel(context, () => Step3DialogueModel());

    // On component load action.
    SchedulerBinding.instance.addPostFrameCallback((_) async {
      logFirebaseEvent('STEP3_DIALOGUE_Step3Dialogue_ON_INIT_STA');
      logFirebaseEvent('Step3Dialogue_execute_callback');
      await widget.loadProperty?.call();
    });

    WidgetsBinding.instance.addPostFrameCallback((_) => safeSetState(() {}));
  }

  @override
  void dispose() {
    _model.maybeDispose();

    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: EdgeInsetsDirectional.fromSTEB(48.0, 0.0, 0.0, 0.0),
      child: ClipRRect(
        borderRadius: BorderRadius.circular(8.0),
        chil
SummaryComponentSearchWidget class · dart · L14-L73 (60 LOC)
app/lib/components/summary_component_search_widget.dart
class SummaryComponentSearchWidget extends StatefulWidget {
  const SummaryComponentSearchWidget({
    super.key,
    this.price,
    required this.impValue,
    this.ttlValue,
    this.dwnPmt,
    required this.duration,
    this.address,
    this.roi,
    this.method,
    required this.image,
    this.cashOnCashReturn,
    this.netReturn,
    this.detailUrl,
    this.zpid,
    this.totalCosts,
    this.financingCosts,
    this.bedrooms,
    this.livingArea,
    this.purchaseDate,
    this.saleDate,
    this.lotArea,
    this.bathrooms,
    this.zestimate,
    this.yearBuilt,
    required this.loanAmount,
    this.cashNeeded,
  });

  final int? price;
  final int? impValue;
  final int? ttlValue;
  final int? dwnPmt;
  final int? duration;
  final String? address;
  final int? roi;
  final String? method;
  final String? image;
  final String? cashOnCashReturn;
  final int? netReturn;
  final String? detailUrl;
  final String? zpid;
  final int? totalCosts;
  final int? financingCost
SummaryofReturnsModel class · dart · L5-L11 (7 LOC)
app/lib/components/summaryof_returns_model.dart
class SummaryofReturnsModel extends FlutterFlowModel<SummaryofReturnsWidget> {
  @override
  void initState(BuildContext context) {}

  @override
  void dispose() {}
}
SummaryofReturnsWidget class · dart · L7-L35 (29 LOC)
app/lib/components/summaryof_returns_widget.dart
class SummaryofReturnsWidget extends StatefulWidget {
  const SummaryofReturnsWidget({
    super.key,
    double? cashOnCash,
    double? netRoi,
    double? irr,
    double? capRate,
    double? dscr,
    this.roe,
    this.groc,
    required this.method,
  })  : this.cashOnCash = cashOnCash ?? 1.0,
        this.netRoi = netRoi ?? 1.0,
        this.irr = irr ?? 1.0,
        this.capRate = capRate ?? 1.0,
        this.dscr = dscr ?? 1.0;

  final double cashOnCash;
  final double netRoi;
  final double irr;
  final double capRate;
  final double dscr;
  final double? roe;
  final double? groc;
  final String? method;

  @override
  State<SummaryofReturnsWidget> createState() => _SummaryofReturnsWidgetState();
}
WelcomeMessageModel class · dart · L5-L11 (7 LOC)
app/lib/components/welcome_message_model.dart
class WelcomeMessageModel extends FlutterFlowModel<WelcomeMessageWidget> {
  @override
  void initState(BuildContext context) {}

  @override
  void dispose() {}
}
WelcomeMessageWidget class · dart · L7-L12 (6 LOC)
app/lib/components/welcome_message_widget.dart
class WelcomeMessageWidget extends StatefulWidget {
  const WelcomeMessageWidget({super.key});

  @override
  State<WelcomeMessageWidget> createState() => _WelcomeMessageWidgetState();
}
Methodology: Repobility · https://repobility.com/research/state-of-ai-code-2026/
_WelcomeMessageWidgetState class · dart · L14-L49 (36 LOC)
app/lib/components/welcome_message_widget.dart
class _WelcomeMessageWidgetState extends State<WelcomeMessageWidget> {
  late WelcomeMessageModel _model;

  @override
  void setState(VoidCallback callback) {
    super.setState(callback);
    _model.onUpdate();
  }

  @override
  void initState() {
    super.initState();
    _model = createModel(context, () => WelcomeMessageModel());

    WidgetsBinding.instance.addPostFrameCallback((_) => safeSetState(() {}));
  }

  @override
  void dispose() {
    _model.maybeDispose();

    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Text(
      'Welcome! Let’s Find Your Next investment Deal\n\nRight now, getRealDeal.ai is scanning every residential property on the market near you—filtering out the noise and surfacing only those with a positive return potential.\n\nRental, flip, add-on, ADU, or new build? If it pencils, you’ll see it—complete with a live-editable proforma you can tweak without leaving the screen.\n\nAll saved reports live in your Saved tab.
CustomMap class · dart · L17-L45 (29 LOC)
app/lib/custom_code/widgets/custom_map.dart
class CustomMap extends StatefulWidget {
  const CustomMap({
    super.key,
    this.width,
    this.height,
    required this.coordinates,
    required this.zoomSetting,
    required this.compCoordinates,
    this.markerImage,
    this.markerImage2,
    this.markerImage3,
    this.minZoom,
    this.maxZoom,
  });

  final double? width;
  final double? height;
  final LatLng coordinates;
  final double zoomSetting;
  final List<LatLng> compCoordinates;
  final String? markerImage;
  final String? markerImage2;
  final String? markerImage3;
  final int? minZoom;
  final int? maxZoom;

  @override
  State<CustomMap> createState() => _CustomMapState();
}
_CustomMapState class · dart · L47-L126 (80 LOC)
app/lib/custom_code/widgets/custom_map.dart
class _CustomMapState extends State<CustomMap> {
  lat.LatLng _convertLatLng(LatLng coord) =>
      lat.LatLng(coord.latitude, coord.longitude);

  @override
  Widget build(BuildContext context) {
    final lat.LatLng mainLatLng = _convertLatLng(widget.coordinates);

    return SizedBox(
      width: widget.width,
      height: widget.height,
      child: FlutterMap(
        options: MapOptions(
          initialCenter: mainLatLng,
          initialZoom: widget.zoomSetting,
          minZoom: widget.minZoom?.toDouble() ??
              5, // set your desired minimum zoom level
          maxZoom: widget.maxZoom?.toDouble() ??
              18, // set your desired maximum zoom level
        ),
        children: [
          TileLayer(
            urlTemplate: 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
            subdomains: const ['a', 'b', 'c'],
            userAgentPackageName: 'com.mycompany.habu',
          ),
          MarkerLayer(
            markers: [
              // 
MainMap class · dart · L17-L43 (27 LOC)
app/lib/custom_code/widgets/main_map.dart
class MainMap extends StatefulWidget {
  const MainMap({
    super.key,
    this.width,
    this.height,
    required this.coordinates,
    required this.zoomSetting,
    required this.propertyCoordinates,
    this.minZoom,
    this.maxZoom,
    required this.onPropertyTap,
    required this.properties,
  });

  final double? width;
  final double? height;
  final LatLng coordinates;
  final double zoomSetting;
  final List<LatLng> propertyCoordinates;
  final double? minZoom;
  final double? maxZoom;
  final Future Function(String zpid, String method) onPropertyTap;
  final List<dynamic> properties;

  @override
  State<MainMap> createState() => _MainMapState();
}
_MainMapState class · dart · L45-L95 (51 LOC)
app/lib/custom_code/widgets/main_map.dart
class _MainMapState extends State<MainMap> {
  lat.LatLng _convertLatLng(LatLng coord) =>
      lat.LatLng(coord.latitude, coord.longitude);

  @override
  Widget build(BuildContext context) {
    final lat.LatLng mainLatLng = _convertLatLng(widget.coordinates);

    return SizedBox(
      width: widget.width,
      height: widget.height,
      child: FlutterMap(
        options: MapOptions(
          initialCenter: mainLatLng,
          initialZoom: widget.zoomSetting,
          minZoom: widget.minZoom ?? 5, // <- limit zoom out
          maxZoom: widget.maxZoom ?? 18, // <- limit zoom in
        ),
        children: [
          TileLayer(
            urlTemplate: 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
            subdomains: const ['a', 'b', 'c'],
            userAgentPackageName: 'com.mycompany.habu',
          ),
          MarkerLayer(
            markers: [
              // Property Markers
              ...widget.propertyCoordinates.asMap().entries.map(
           
WebpageScreenshot class · dart · L100-L114 (15 LOC)
app/lib/custom_code/widgets/webpage_screenshot.dart
class WebpageScreenshot extends StatefulWidget {
  const WebpageScreenshot({
    super.key,
    this.width,
    this.height,
    required this.showExportButton,
  });

  final double? width;
  final double? height;
  final bool showExportButton;

  @override
  State<WebpageScreenshot> createState() => _WebpageScreenshotState();
}
_WebpageScreenshotState class · dart · L116-L196 (81 LOC)
app/lib/custom_code/widgets/webpage_screenshot.dart
class _WebpageScreenshotState extends State<WebpageScreenshot> {
  final ScreenshotController screenshotController = ScreenshotController();
  final ScrollController scrollController = ScrollController();

  Future<void> captureAndDownloadPdf() async {
    try {
      final pdf = pw.Document();

      const int scrollSteps = 3;
      for (int i = 0; i < scrollSteps; i++) {
        // Scroll to next position
        double targetOffset =
            scrollController.position.maxScrollExtent * (i / scrollSteps);
        await scrollController.animateTo(
          targetOffset,
          duration: const Duration(milliseconds: 500),
          curve: Curves.easeInOut,
        );

        // Wait a little for rendering to settle
        await Future.delayed(const Duration(milliseconds: 600));

        // Take screenshot
        final Uint8List? imageBytes = await screenshotController.capture();
        if (imageBytes == null) throw Exception('Failed to capture image');

        final pdfImag
WidgetScreenshot class · dart · L21-L39 (19 LOC)
app/lib/custom_code/widgets/widget_screenshot.dart
class WidgetScreenshot extends StatefulWidget {
  const WidgetScreenshot({
    Key? key,
    this.width,
    this.height,
    required this.screenshotChild,
    required this.initialPosition, // New parameter
    this.markerCoordinates = const [], // New parameter with default empty list
  }) : super(key: key);

  final double? width;
  final double? height;
  final Widget Function() screenshotChild;
  final LatLng initialPosition; // Map center
  final List<LatLng> markerCoordinates; // List of marker positions

  @override
  _WidgetScreenshotState createState() => _WidgetScreenshotState();
}
All rows scored by the Repobility analyzer (https://repobility.com)
_WidgetScreenshotState class · dart · L41-L232 (192 LOC)
app/lib/custom_code/widgets/widget_screenshot.dart
class _WidgetScreenshotState extends State<WidgetScreenshot> {
  final GlobalKey _repaintKey = GlobalKey();

  // Replace with your actual Google Maps Static API Key
  static const String googleMapsApiKey =
      'AIzaSyBJDJQZEJh6kRfdslUQ8uEbzVsRSW-WwFc'; // IMPORTANT: Replace with your actual API key

  Future<Uint8List?> _fetchStaticMapImage(
      int zoom, LatLng center, List<LatLng> additionalMarkers) async {
    // Renamed for clarity
    const String size = '600x300';

    // Explicitly format center coordinates (still good practice)
    final String formattedCenter = '${center.latitude},${center.longitude}';

    // --- START CHANGE HERE ---
    // Combine initialPosition with other markers
    List<LatLng> allMarkers = [center]; // Start with initialPosition
    allMarkers.addAll(additionalMarkers); // Add the rest

    String markersString = '';
    if (allMarkers.isNotEmpty) {
      markersString = '&markers=color:red%7C'; // Default red marker
      // Format all combined m
FFDevEnvironmentValues class · dart · L4-L31 (28 LOC)
app/lib/environment_values.dart
class FFDevEnvironmentValues {
  static const String currentEnvironment = 'Production';
  static const String environmentValuesPath =
      'assets/environment_values/environment.json';

  static final FFDevEnvironmentValues _instance =
      FFDevEnvironmentValues._internal();

  factory FFDevEnvironmentValues() {
    return _instance;
  }

  FFDevEnvironmentValues._internal();

  Future<void> initialize() async {
    try {
      final String response =
          await rootBundle.loadString(environmentValuesPath);
      final data = await json.decode(response);
      _paymentSuccessUrl = data['paymentSuccessUrl'];
    } catch (e) {
      print('Error loading environment values: $e');
    }
  }

  String _paymentSuccessUrl = '';
  String get paymentSuccessUrl => _paymentSuccessUrl;
}
AnimationInfo class · dart · L9-L32 (24 LOC)
app/lib/flutter_flow/flutter_flow_animations.dart
class AnimationInfo {
  AnimationInfo({
    required this.trigger,
    required this.effectsBuilder,
    this.loop = false,
    this.reverse = false,
    this.applyInitialState = true,
  });
  final AnimationTrigger trigger;
  final List<Effect> Function()? effectsBuilder;
  final bool applyInitialState;
  final bool loop;
  final bool reverse;
  late AnimationController controller;

  List<Effect>? _effects;
  List<Effect> get effects => _effects ??= effectsBuilder!();

  void maybeUpdateEffects(List<Effect>? updatedEffects) {
    if (updatedEffects != null) {
      _effects = updatedEffects;
    }
  }
}
TiltEffect class · dart · L77-L112 (36 LOC)
app/lib/flutter_flow/flutter_flow_animations.dart
class TiltEffect extends Effect<Offset> {
  const TiltEffect({
    Duration? delay,
    Duration? duration,
    Curve? curve,
    Offset? begin,
    Offset? end,
  }) : super(
          delay: delay,
          duration: duration,
          curve: curve,
          begin: begin ?? const Offset(0.0, 0.0),
          end: end ?? const Offset(0.0, 0.0),
        );

  @override
  Widget build(
    BuildContext context,
    Widget child,
    AnimationController controller,
    EffectEntry entry,
  ) {
    Animation<Offset> animation = buildAnimation(controller, entry);
    return getOptimizedBuilder<Offset>(
      animation: animation,
      builder: (_, __) => Transform(
        transform: Matrix4.identity()
          ..setEntry(3, 2, 0.001)
          ..rotateX(animation.value.dx)
          ..rotateY(animation.value.dy),
        alignment: Alignment.center,
        child: child,
      ),
    );
  }
}
_TabLabelBarRenderer class · dart · L14-L61 (48 LOC)
app/lib/flutter_flow/flutter_flow_button_tabbar.dart
class _TabLabelBarRenderer extends RenderFlex {
  _TabLabelBarRenderer({
    required Axis direction,
    required MainAxisSize mainAxisSize,
    required MainAxisAlignment mainAxisAlignment,
    required CrossAxisAlignment crossAxisAlignment,
    required TextDirection textDirection,
    required VerticalDirection verticalDirection,
    required this.onPerformLayout,
  }) : super(
          direction: direction,
          mainAxisSize: mainAxisSize,
          mainAxisAlignment: mainAxisAlignment,
          crossAxisAlignment: crossAxisAlignment,
          textDirection: textDirection,
          verticalDirection: verticalDirection,
        );

  _LayoutCallback onPerformLayout;

  @override
  void performLayout() {
    super.performLayout();
    // xOffsets will contain childCount+1 values, giving the offsets of the
    // leading edge of the first tab as the first value, of the leading edge of
    // the each subsequent tab as each subsequent value, and of the trailing
    // edge of
_TabLabelBar class · dart · L66-L100 (35 LOC)
app/lib/flutter_flow/flutter_flow_button_tabbar.dart
class _TabLabelBar extends Flex {
  _TabLabelBar({
    required List<Widget> children,
    required this.onPerformLayout,
  }) : super(
          children: children,
          direction: Axis.horizontal,
          mainAxisSize: MainAxisSize.max,
          mainAxisAlignment: MainAxisAlignment.start,
          crossAxisAlignment: CrossAxisAlignment.center,
          verticalDirection: VerticalDirection.down,
        );

  final _LayoutCallback onPerformLayout;

  @override
  RenderFlex createRenderObject(BuildContext context) {
    return _TabLabelBarRenderer(
      direction: direction,
      mainAxisAlignment: mainAxisAlignment,
      mainAxisSize: mainAxisSize,
      crossAxisAlignment: crossAxisAlignment,
      textDirection: getEffectiveTextDirection(context)!,
      verticalDirection: verticalDirection,
      onPerformLayout: onPerformLayout,
    );
  }

  @override
  void updateRenderObject(
      BuildContext context, _TabLabelBarRenderer renderObject) {
    super.updateRenderObj
_IndicatorPainter class · dart · L102-L164 (63 LOC)
app/lib/flutter_flow/flutter_flow_button_tabbar.dart
class _IndicatorPainter extends CustomPainter {
  _IndicatorPainter({
    required this.controller,
    required this.tabKeys,
    required _IndicatorPainter? old,
  }) : super(repaint: controller.animation) {
    if (old != null) {
      saveTabOffsets(old._currentTabOffsets, old._currentTextDirection);
    }
  }

  final TabController controller;

  final List<GlobalKey> tabKeys;

  // _currentTabOffsets and _currentTextDirection are set each time TabBar
  // layout is completed. These values can be null when TabBar contains no
  // tabs, since there are nothing to lay out.
  List<double>? _currentTabOffsets;
  TextDirection? _currentTextDirection;

  BoxPainter? _painter;
  bool _needsPaint = false;
  void markNeedsPaint() {
    _needsPaint = true;
  }

  void dispose() {
    _painter?.dispose();
  }

  void saveTabOffsets(List<double>? tabOffsets, TextDirection? textDirection) {
    _currentTabOffsets = tabOffsets;
    _currentTextDirection = textDirection;
  }

  // _currentTabOff
_TabBarScrollPosition class · dart · L171-L217 (47 LOC)
app/lib/flutter_flow/flutter_flow_button_tabbar.dart
class _TabBarScrollPosition extends ScrollPositionWithSingleContext {
  _TabBarScrollPosition({
    required ScrollPhysics physics,
    required ScrollContext context,
    required ScrollPosition? oldPosition,
    required this.tabBar,
  }) : super(
          initialPixels: null,
          physics: physics,
          context: context,
          oldPosition: oldPosition,
        );

  final _FlutterFlowButtonTabBarState tabBar;

  bool _viewportDimensionWasNonZero = false;

  // Position should be adjusted at least once.
  bool _needsPixelsCorrection = true;

  @override
  bool applyContentDimensions(double minScrollExtent, double maxScrollExtent) {
    bool result = true;
    if (!_viewportDimensionWasNonZero) {
      _viewportDimensionWasNonZero = viewportDimension != 0.0;
    }
    // If the viewport never had a non-zero dimension, we just want to jump
    // to the initial scroll position to avoid strange scrolling effects in
    // release mode: In release mode, the viewport tempor
Same scanner, your repo: https://repobility.com — Repobility
_TabBarScrollController class · dart · L221-L236 (16 LOC)
app/lib/flutter_flow/flutter_flow_button_tabbar.dart
class _TabBarScrollController extends ScrollController {
  _TabBarScrollController(this.tabBar);

  final _FlutterFlowButtonTabBarState tabBar;

  @override
  ScrollPosition createScrollPosition(ScrollPhysics physics,
      ScrollContext context, ScrollPosition? oldPosition) {
    return _TabBarScrollPosition(
      physics: physics,
      context: context,
      oldPosition: oldPosition,
      tabBar: tabBar,
    );
  }
}
ChipData class · dart · L8-L12 (5 LOC)
app/lib/flutter_flow/flutter_flow_choice_chips.dart
class ChipData {
  const ChipData(this.label, [this.iconData]);
  final String label;
  final IconData? iconData;
}
ChipStyle class · dart · L14-L35 (22 LOC)
app/lib/flutter_flow/flutter_flow_choice_chips.dart
class ChipStyle {
  const ChipStyle({
    this.backgroundColor,
    this.textStyle,
    this.iconColor,
    this.iconSize,
    this.labelPadding,
    this.elevation,
    this.borderColor,
    this.borderWidth,
    this.borderRadius,
  });
  final Color? backgroundColor;
  final TextStyle? textStyle;
  final Color? iconColor;
  final double? iconSize;
  final EdgeInsetsGeometry? labelPadding;
  final double? elevation;
  final Color? borderColor;
  final double? borderWidth;
  final BorderRadius? borderRadius;
}
FlutterFlowChoiceChips class · dart · L37-L69 (33 LOC)
app/lib/flutter_flow/flutter_flow_choice_chips.dart
class FlutterFlowChoiceChips extends StatefulWidget {
  const FlutterFlowChoiceChips({
    super.key,
    required this.options,
    required this.onChanged,
    required this.controller,
    required this.selectedChipStyle,
    required this.unselectedChipStyle,
    required this.chipSpacing,
    this.rowSpacing = 0.0,
    required this.multiselect,
    this.initialized = true,
    this.alignment = WrapAlignment.start,
    this.disabledColor,
    this.wrapped = true,
  });

  final List<ChipData> options;
  final void Function(List<String>?)? onChanged;
  final FormFieldController<List<String>> controller;
  final ChipStyle selectedChipStyle;
  final ChipStyle unselectedChipStyle;
  final double chipSpacing;
  final double rowSpacing;
  final bool multiselect;
  final bool initialized;
  final WrapAlignment alignment;
  final Color? disabledColor;
  final bool wrapped;

  @override
  State<FlutterFlowChoiceChips> createState() => _FlutterFlowChoiceChipsState();
}
_FlutterFlowChoiceChipsState class · dart · L71-L178 (108 LOC)
app/lib/flutter_flow/flutter_flow_choice_chips.dart
class _FlutterFlowChoiceChipsState extends State<FlutterFlowChoiceChips> {
  late List<String> choiceChipValues;
  List<String> get selectedValues => widget.controller.value ?? [];

  @override
  void initState() {
    super.initState();
    choiceChipValues = List.from(selectedValues);
    if (!widget.initialized && choiceChipValues.isNotEmpty) {
      SchedulerBinding.instance.addPostFrameCallback(
        (_) {
          if (widget.onChanged != null) {
            widget.onChanged!(choiceChipValues);
          }
        },
      );
    }
  }

  @override
  void dispose() {
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    final children = widget.options.map<Widget>(
      (option) {
        final selected = selectedValues.contains(option.label);
        final style =
            selected ? widget.selectedChipStyle : widget.unselectedChipStyle;
        return Theme(
          data: Theme.of(context).copyWith(canvasColor: Colors.transparent),
          c
MarkerImage class · dart · L39-L59 (21 LOC)
app/lib/flutter_flow/flutter_flow_google_map.dart
class MarkerImage {
  const MarkerImage({
    required this.imagePath,
    required this.isAssetImage,
    this.size = 20.0,
  });
  final String imagePath;
  final bool isAssetImage;
  final double size;

  @override
  bool operator ==(Object other) =>
      identical(this, other) ||
      (other is MarkerImage &&
          imagePath == other.imagePath &&
          isAssetImage == other.isAssetImage &&
          size == other.size);

  @override
  int get hashCode => Object.hash(imagePath, isAssetImage, size);
}
FlutterFlowMarker class · dart · L61-L66 (6 LOC)
app/lib/flutter_flow/flutter_flow_google_map.dart
class FlutterFlowMarker {
  const FlutterFlowMarker(this.markerId, this.location, [this.onTap]);
  final String markerId;
  final latlng.LatLng location;
  final Future Function()? onTap;
}
FlutterFlowGoogleMap class · dart · L68-L115 (48 LOC)
app/lib/flutter_flow/flutter_flow_google_map.dart
class FlutterFlowGoogleMap extends StatefulWidget {
  const FlutterFlowGoogleMap({
    required this.controller,
    this.onCameraIdle,
    this.initialLocation,
    this.markers = const [],
    this.markerColor = GoogleMarkerColor.red,
    this.markerImage,
    this.mapType = MapType.normal,
    this.style = GoogleMapStyle.standard,
    this.initialZoom = 12,
    this.allowInteraction = true,
    this.allowZoom = true,
    this.showZoomControls = true,
    this.showLocation = true,
    this.showCompass = false,
    this.showMapToolbar = false,
    this.showTraffic = false,
    this.centerMapOnMarkerTap = false,
    // Whether the map takes gesture preference over the surrounding page.
    // This is useful when the map is inside a scrolling Widget, and you want
    // the gestures within the map to not affect the surrounding page.
    this.mapTakesGesturePreference = false,
    super.key,
  });

  final Completer<GoogleMapController> controller;
  final Function(latlng.LatLng)? onCame
Powered by Repobility — scan your code at https://repobility.com
_FlutterFlowGoogleMapState class · dart · L117-L256 (140 LOC)
app/lib/flutter_flow/flutter_flow_google_map.dart
class _FlutterFlowGoogleMapState extends State<FlutterFlowGoogleMap> {
  double get initialZoom => max(double.minPositive, widget.initialZoom);
  LatLng get initialPosition =>
      widget.initialLocation?.toGoogleMaps() ?? const LatLng(0.0, 0.0);

  late Completer<GoogleMapController> _controller;
  BitmapDescriptor? _markerDescriptor;
  late LatLng currentMapCenter;

  void initializeMarkerBitmap() {
    final markerImage = widget.markerImage;

    if (markerImage == null) {
      _markerDescriptor = BitmapDescriptor.defaultMarkerWithHue(
        googleMarkerColorMap[widget.markerColor]!,
      );
      return;
    }

    SchedulerBinding.instance.addPostFrameCallback((_) {
      final markerImageSize = Size.square(markerImage.size);
      var imageProvider = markerImage.isAssetImage
          ? Image.asset(markerImage.imagePath).image
          : CachedNetworkImageProvider(markerImage.imagePath);
      if (!kIsWeb) {
        // workaround for https://github.com/flutter/flutter/issue
FlutterFlowIconButton class · dart · L4-L42 (39 LOC)
app/lib/flutter_flow/flutter_flow_icon_button.dart
class FlutterFlowIconButton extends StatefulWidget {
  const FlutterFlowIconButton({
    Key? key,
    required this.icon,
    this.borderColor,
    this.borderRadius,
    this.borderWidth,
    this.buttonSize,
    this.fillColor,
    this.disabledColor,
    this.disabledIconColor,
    this.hoverColor,
    this.hoverIconColor,
    this.hoverBorderColor,
    this.onPressed,
    this.showLoadingIndicator = false,
    this.focusBorderSide,
    this.focusBorderRadius,
  }) : super(key: key);

  final Widget icon;
  final double? borderRadius;
  final double? buttonSize;
  final Color? fillColor;
  final Color? disabledColor;
  final Color? disabledIconColor;
  final Color? hoverColor;
  final Color? hoverIconColor;
  final Color? hoverBorderColor;
  final Color? borderColor;
  final double? borderWidth;
  final bool showLoadingIndicator;
  final Function()? onPressed;
  final BorderSide? focusBorderSide;
  final BorderRadius? focusBorderRadius;

  @override
  State<FlutterFlowIconButton> c
_FlutterFlowIconButtonState class · dart · L44-L195 (152 LOC)
app/lib/flutter_flow/flutter_flow_icon_button.dart
class _FlutterFlowIconButtonState extends State<FlutterFlowIconButton> {
  bool loading = false;
  late double? iconSize;
  late Color? iconColor;
  late Widget effectiveIcon;

  @override
  void initState() {
    super.initState();
    _updateIcon();
  }

  @override
  void didUpdateWidget(FlutterFlowIconButton oldWidget) {
    super.didUpdateWidget(oldWidget);
    _updateIcon();
  }

  void _updateIcon() {
    final isFontAwesome = widget.icon is FaIcon;
    if (isFontAwesome) {
      FaIcon icon = widget.icon as FaIcon;
      effectiveIcon = FaIcon(
        icon.icon,
        size: icon.size,
      );
      iconSize = icon.size;
      iconColor = icon.color;
    } else {
      Icon icon = widget.icon as Icon;
      effectiveIcon = Icon(
        icon.icon,
        size: icon.size,
      );
      iconSize = icon.size;
      iconColor = icon.color;
    }
  }

  @override
  Widget build(BuildContext context) {
    ButtonStyle style = ButtonStyle(
      shape: WidgetStateProperty.resolve
‹ prevpage 3 / 7next ›