####Background
The Apps team plans to explore if a personalized Wikipedia Year in Review feature that displays insights about a user's reading history, editing history, and donation history is engaging for App users, and inspires them to make a donation to the Wikimedia Foundation.
####Requirements
- Slide is personalized if we recognize that the user has made a donation OR has made edits
Collective slide
- Display if we do not have a donation stored for them & they did not see personalized editing slides
- "Donate now" should lead to the [[ https://www.figma.com/design/JRTyGA3rZ0qlQ9eqh0FMhE/Wikipedia-YiR?node-id=285-1032&t=hsZxCZkL6xfEv7t1-4 | donation flow ]]
- "Learn how to participate" should lead to a in-app webview of https://www.mediawiki.org/wiki/Wikimedia_Apps/iOS_FAQ#Editing
- Done or Not now should dismiss and show the survey
- Donations made through this entry point should be counted as appmenu donations, but also have an additional identifier to allow distinguishing them from appmenu.
Personalized slide
- Display if we have a locally stored donation OR this person saw the personalized editing slides
- "Finish" and "Done" should lead to the survey
- Nice-to-have: Reference the amount they donated with correct currency code (Thank you for being one of them **by donating $11.25**).
####Designs
Illustration & language to be updated
| Collective | Personalized
| {F57586461} | {F57586459}
####Engineering Notes
Both:
- Modify existing slide UI component (created in T375566) to allow configuration options to show this slightly different design (top left donate button hidden, large "donate now" and "not now" buttons at bottom for personalized, top left donate button hidden, "Finish" text for collective).
Collective:
- Attach donate logic to closing screen. If they tap Donate, ask donate coordinator to start, ensure button target rect is passed along. Turn donate button into spinner while it fetches configs.
Personalized:
- (data half) Upon app resume method, pull persisted slide item object for this slide identifier. If evaluated = no AND remote config does not have a personalized slide kill switch, grab the number of persisted donations that were saved that year. //Also// grab the number of edits that were made that year via an API call (we should do this part after T376320, which adds in all the difficult work of fetching their year's worth of edits and persisting). Then set “evaluated = yes”. Set display = yes if user has donated at all that year, OR they have edits.
- (UI half) Ensure that when we create the view models before presenting slides (see T376044), fetch the persisted model from previous bullet point. If display = yes, build a slide view model for this data (using the report model's metadata). Ensure slide view model is inserted into the correct order, and that associated collective "fallback" slide is NOT inserted.