flutter-samples/lib/logics/services/poetry_detail.dart
2025-05-03 15:33:44 +08:00

38 lines
1.1 KiB
Dart

import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_samples/logics/entities/state/poetry_detail.dart';
import 'package:flutter_samples/logics/models/poetry.dart';
import 'package:flutter_samples/utils/index.dart';
class PoetryDetailService extends StateNotifier<PoetryDetailState> {
final PoetryModel _poetryModel;
PoetryDetailService(this._poetryModel) : super(const PoetryDetailState());
void setUp(int id) {
state = state.copyWith(poetryId: id);
queryPoetryDetail();
}
tapPoetry() {
showNoneMsg('用户点击了诗词');
}
// 获取诗词列表
Future<void> queryPoetryDetail() async {
try {
if (state.poetryId < 1) {
return;
}
final poetry = await _poetryModel.getPoetryDetail({'id': state.poetryId});
state = state.copyWith(poetry: poetry);
} catch (e) {
// Handle error
}
}
}
final poetryDetailServiceProvider =
StateNotifierProvider<PoetryDetailService, PoetryDetailState>((ref) {
final poetryModel = ref.read(poetryProvider);
return PoetryDetailService(poetryModel);
});