first commit

This commit is contained in:
Anbarasu
2026-05-26 18:01:57 +05:30
commit 6d59c8daf6
297 changed files with 35238 additions and 0 deletions

View File

@@ -0,0 +1,90 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import '../../constants/asset_constants.dart';
import '../../view/authentication/login_view.dart';
/// Data modules for each intro slide
class IntroSlide {
final String title;
final String description;
final String imageAsset;
final String chipLabel;
final Color bgColor;
final Color accentColor;
const IntroSlide({
required this.title,
required this.description,
required this.imageAsset,
required this.chipLabel,
required this.bgColor,
required this.accentColor,
});
}
class IntroScreenController extends GetxController {
late final PageController pageController;
late final List<IntroSlide> slides;
int _currentPage = 0;
int get currentPage => _currentPage;
bool get isLastPage => _currentPage == slides.length - 1;
@override
void onInit() {
super.onInit();
pageController = PageController();
slides = [
const IntroSlide(
title: "Fresh Essentials\nEvery Day",
description:
"Get farm-fresh fruits and vegetables directly from our storage to your home.",
imageAsset: AssetConstants.introNew_1,
chipLabel: "🌿 FARM TO DOOR",
bgColor: Color(0xFFECF8F0),
accentColor: Color(0xFF2D9B5A),
),
const IntroSlide(
title: "Fast & Reliable\nDelivery",
description:
"We store, pack, and deliver from our own facility to ensure quality and speed.",
imageAsset: AssetConstants.introNew_2,
chipLabel: "⚡ LIGHTNING FAST",
bgColor: Color(0xFFFFF7E6),
accentColor: Color(0xFFE8931A),
),
const IntroSlide(
title: "Just a Click\nAway",
description:
"Quick tomato run or a full veggie basket — shopping made easy and convenient.",
imageAsset: AssetConstants.intro3,
chipLabel: "🛒 SUPER CONVENIENT",
bgColor: Color(0xFFEEF4FF),
accentColor: Color(0xFF4A7FD4),
),
];
}
@override
void onClose() {
pageController.dispose();
super.onClose();
}
void onPageChanged(int index) {
_currentPage = index;
update();
}
void nextPage() {
pageController.nextPage(
duration: const Duration(milliseconds: 400),
curve: Curves.easeInOut,
);
}
void onDonePress() {
Get.off(() => Login_view());
}
}