update mobile design

This commit is contained in:
pradeepkumar
2026-02-24 22:35:16 +05:30
parent 1f48ff3852
commit e0a747d64b
32 changed files with 1017 additions and 312 deletions

View File

@@ -0,0 +1,58 @@
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:real_estate_mobile/features/home/data/home_repository.dart';
import 'package:real_estate_mobile/features/home/data/models/landing_page_content.dart';
final homeRepositoryProvider = Provider<HomeRepository>((ref) {
return HomeRepository();
});
class HomeState {
final LandingPageContent? content;
final bool isLoading;
final String? error;
const HomeState({
this.content,
this.isLoading = false,
this.error,
});
HomeState copyWith({
LandingPageContent? content,
bool? isLoading,
String? error,
}) {
return HomeState(
content: content ?? this.content,
isLoading: isLoading ?? this.isLoading,
error: error,
);
}
}
class HomeNotifier extends StateNotifier<HomeState> {
final HomeRepository _repository;
HomeNotifier(this._repository) : super(const HomeState()) {
loadContent();
}
Future<void> loadContent() async {
state = state.copyWith(isLoading: true, error: null);
try {
final content = await _repository.getLandingPageContent();
state = state.copyWith(content: content, isLoading: false);
} catch (e) {
state = state.copyWith(
isLoading: false,
error: 'Failed to load content',
);
}
}
}
final homeProvider = StateNotifierProvider<HomeNotifier, HomeState>((ref) {
final repository = ref.watch(homeRepositoryProvider);
return HomeNotifier(repository);
});