@@ -23,6 +23,7 @@ import 'package:flutter_mozilla_components/flutter_mozilla_components.dart';
2323import 'package:riverpod/experimental/persist.dart' ;
2424import 'package:riverpod_annotation/experimental/persist.dart' ;
2525import 'package:riverpod_annotation/riverpod_annotation.dart' ;
26+ import 'package:weblibre/features/addons/utils/addon_html.dart' ;
2627import 'package:weblibre/features/geckoview/domain/providers.dart' ;
2728import 'package:weblibre/features/user/data/providers.dart' ;
2829
@@ -137,6 +138,50 @@ Future<AddonStoreInfo?> addonStoreInfo(Ref ref, String addonId) {
137138 return ref.read (addonServiceProvider).getAddonStoreInfo (addonId);
138139}
139140
141+ @Riverpod ()
142+ Future <List <AddonListing >> featuredAddonListings (Ref ref, AddonStoreApp app) {
143+ return ref.read (addonServiceProvider).getFeaturedAddonListings (app: app);
144+ }
145+
146+ @Riverpod ()
147+ Future <List <AddonListing >> searchAddonListings (
148+ Ref ref,
149+ String query,
150+ AddonStoreApp app,
151+ ) async {
152+ final trimmed = query.trim ();
153+ if (trimmed.isEmpty) {
154+ return ref.watch (featuredAddonListingsProvider (app).future);
155+ }
156+ return ref.read (addonServiceProvider).searchAddonListings (
157+ query: trimmed,
158+ app: app,
159+ );
160+ }
161+
162+ @Riverpod (keepAlive: true )
163+ class AddonStoreAppFilter extends _$AddonStoreAppFilter {
164+ void setApp (AddonStoreApp app) => state = app;
165+
166+ @override
167+ AddonStoreApp build () => AddonStoreApp .android;
168+ }
169+
170+ @Riverpod ()
171+ Future <String > addonDescriptionMarkdown (Ref ref, String addonId) async {
172+ final description = await ref.watch (
173+ addonDetailsProvider (
174+ addonId,
175+ ).selectAsync ((addon) => addon? .description ?? '' ),
176+ );
177+ return turndownAddonHtml (description);
178+ }
179+
180+ @Riverpod ()
181+ Future <String > addonHtmlMarkdown (Ref ref, String html) {
182+ return turndownAddonHtml (html);
183+ }
184+
140185@Riverpod ()
141186Future <AddonUpdateAttemptInfo ?> lastAddonUpdateAttempt (
142187 Ref ref,
0 commit comments