[PR #87] [MERGED] feat(refresh): add pull-to-refresh functionality to screens #89

Closed
opened 2026-05-07 00:17:51 +02:00 by BreizhHardware · 0 comments

📋 Pull Request Information

Original PR: https://github.com/appen-isen/studysen/pull/87
Author: @BreizhHardware
Created: 10/17/2025
Status: Merged
Merged: 10/17/2025
Merged by: @BreizhHardware

Base: devHead: fix/allow-force-refresh


📝 Commits (1)

  • 56b9822 feat(refresh): add pull-to-refresh functionality to screens

📊 Changes

13 files changed (+143 additions, -23 deletions)

View changed files

.prettierignore (+11 -0)
📝 app/(tabs)/index.tsx (+22 -2)
📝 app/(tabs)/notes.tsx (+28 -2)
📝 app/(tabs)/planning.tsx (+34 -2)
📝 components/ExternalLink.tsx (+1 -1)
📝 components/Page.tsx (+2 -1)
📝 components/Sheet.tsx (+19 -7)
📝 package-lock.json (+17 -0)
📝 package.json (+3 -1)
📝 services/syncService.ts (+1 -1)
📝 stores/sessionStore.ts (+1 -1)
📝 stores/telemetryStore.ts (+2 -3)
📝 webAurion/utils/PlanningUtils.ts (+2 -2)

📄 Description

This pull request adds pull-to-refresh support across the main app screens and introduces Prettier for code formatting, along with some minor code cleanups. The most significant changes are the implementation of the pull-to-refresh feature in the Home, Notes, and Planning screens, and the addition of Prettier configuration and scripts for consistent code style.

User-facing features:

  • Added pull-to-refresh functionality to the Home (index.tsx), Notes (notes.tsx), and Planning (planning.tsx) screens, enabling users to manually trigger data synchronization by pulling down on the page. This uses the RefreshControl component and the shared syncData logic. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]

Developer experience & tooling:

  • Added Prettier to the project for code formatting, including a .prettierignore file and a pretty script in package.json for easy formatting. [1] [2] [3]
  • Updated the Page component to accept a refreshControl prop, enabling screens to easily add pull-to-refresh support. [1] [2]

Code quality and minor cleanups:

  • Made minor formatting and consistency improvements in several files, such as removing unnecessary trailing commas and adjusting object formatting. [1] [2] [3] [4] [5] [6] [7] [8]
  • Exported syncData from syncService.ts so it can be used in multiple screens.

As seen with @dd060606 it should fix the issue of not sync on IOS devices.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/appen-isen/studysen/pull/87 **Author:** [@BreizhHardware](https://github.com/BreizhHardware) **Created:** 10/17/2025 **Status:** ✅ Merged **Merged:** 10/17/2025 **Merged by:** [@BreizhHardware](https://github.com/BreizhHardware) **Base:** `dev` ← **Head:** `fix/allow-force-refresh` --- ### 📝 Commits (1) - [`56b9822`](https://github.com/appen-isen/studysen/commit/56b98225cda4760aed9cb4dfe4a7b110e7deb41d) feat(refresh): add pull-to-refresh functionality to screens ### 📊 Changes **13 files changed** (+143 additions, -23 deletions) <details> <summary>View changed files</summary> ➕ `.prettierignore` (+11 -0) 📝 `app/(tabs)/index.tsx` (+22 -2) 📝 `app/(tabs)/notes.tsx` (+28 -2) 📝 `app/(tabs)/planning.tsx` (+34 -2) 📝 `components/ExternalLink.tsx` (+1 -1) 📝 `components/Page.tsx` (+2 -1) 📝 `components/Sheet.tsx` (+19 -7) 📝 `package-lock.json` (+17 -0) 📝 `package.json` (+3 -1) 📝 `services/syncService.ts` (+1 -1) 📝 `stores/sessionStore.ts` (+1 -1) 📝 `stores/telemetryStore.ts` (+2 -3) 📝 `webAurion/utils/PlanningUtils.ts` (+2 -2) </details> ### 📄 Description This pull request adds pull-to-refresh support across the main app screens and introduces Prettier for code formatting, along with some minor code cleanups. The most significant changes are the implementation of the pull-to-refresh feature in the Home, Notes, and Planning screens, and the addition of Prettier configuration and scripts for consistent code style. **User-facing features:** * Added pull-to-refresh functionality to the Home (`index.tsx`), Notes (`notes.tsx`), and Planning (`planning.tsx`) screens, enabling users to manually trigger data synchronization by pulling down on the page. This uses the `RefreshControl` component and the shared `syncData` logic. [[1]](diffhunk://#diff-f1376aabc191da604c7467683d96ee39e243cbc17a4a4caaa41d43f1979a1ebdL2-R9) [[2]](diffhunk://#diff-f1376aabc191da604c7467683d96ee39e243cbc17a4a4caaa41d43f1979a1ebdR50-R55) [[3]](diffhunk://#diff-f1376aabc191da604c7467683d96ee39e243cbc17a4a4caaa41d43f1979a1ebdL63-R83) [[4]](diffhunk://#diff-b66174d7e773c79ec0463a26ffe42bdc0135ae76fb08792b4174f3a519632a04L18-R30) [[5]](diffhunk://#diff-b66174d7e773c79ec0463a26ffe42bdc0135ae76fb08792b4174f3a519632a04R41-R47) [[6]](diffhunk://#diff-b66174d7e773c79ec0463a26ffe42bdc0135ae76fb08792b4174f3a519632a04L48-R74) [[7]](diffhunk://#diff-7eadbe1236c9d6f60f7696c7c2884973bac6940b67da705964fe893309c32e88L1-R1) [[8]](diffhunk://#diff-7eadbe1236c9d6f60f7696c7c2884973bac6940b67da705964fe893309c32e88R22-R31) [[9]](diffhunk://#diff-7eadbe1236c9d6f60f7696c7c2884973bac6940b67da705964fe893309c32e88R44-R49) [[10]](diffhunk://#diff-7eadbe1236c9d6f60f7696c7c2884973bac6940b67da705964fe893309c32e88L63-R83) [[11]](diffhunk://#diff-7eadbe1236c9d6f60f7696c7c2884973bac6940b67da705964fe893309c32e88R198-R203) [[12]](diffhunk://#diff-7eadbe1236c9d6f60f7696c7c2884973bac6940b67da705964fe893309c32e88R212-R217) **Developer experience & tooling:** * Added Prettier to the project for code formatting, including a `.prettierignore` file and a `pretty` script in `package.json` for easy formatting. [[1]](diffhunk://#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519L15-R16) [[2]](diffhunk://#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519R62) [[3]](diffhunk://#diff-b640b344ee7f3f03d2a443795a5d0708ef50e2e6e34214109ab2aad13ad6ba98R1-R11) * Updated the `Page` component to accept a `refreshControl` prop, enabling screens to easily add pull-to-refresh support. [[1]](diffhunk://#diff-0b72ffe495a2236c55faf4cba864ceeb7ab55f7afb99d7dfab5581973fd47dbcL1-R1) [[2]](diffhunk://#diff-0b72ffe495a2236c55faf4cba864ceeb7ab55f7afb99d7dfab5581973fd47dbcR16) **Code quality and minor cleanups:** * Made minor formatting and consistency improvements in several files, such as removing unnecessary trailing commas and adjusting object formatting. [[1]](diffhunk://#diff-64a0979dd1c0cce68aabd81273b0b714d3f6de3a881436d5e6bab7b6e7de18f6L13-R13) [[2]](diffhunk://#diff-76ac5500809a3dc83fc576f79257f3c5ff5e20ce2362bdf2144e78542d07cfb7L31-R32) [[3]](diffhunk://#diff-bbdaf915d8d3e1d528c4e72179da9077dda3c502c26c35e9d7ed60ff42d8a165L7-R7) [[4]](diffhunk://#diff-bbdaf915d8d3e1d528c4e72179da9077dda3c502c26c35e9d7ed60ff42d8a165L50-R50) [[5]](diffhunk://#diff-e0a645aff9fa2c4d988b3a34953084b239b5ad1120bfce6627e71150f91762d1L7-R7) [[6]](diffhunk://#diff-ff7dad88de922955c21803df9f701e34b28dbf50032a8232903ffc2855cbf36eL1-R6) [[7]](diffhunk://#diff-ff7dad88de922955c21803df9f701e34b28dbf50032a8232903ffc2855cbf36eL23-R36) [[8]](diffhunk://#diff-ff7dad88de922955c21803df9f701e34b28dbf50032a8232903ffc2855cbf36eL43-R59) * Exported `syncData` from `syncService.ts` so it can be used in multiple screens. As seen with @dd060606 it should fix the issue of not sync on IOS devices. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
BreizhHardware 2026-05-07 00:17:51 +02:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/studysen#89
No description provided.