38 lines
1.1 KiB
Dart
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);
|
|
});
|