Skip to content

Bugfix/list member#1913

Merged
Tlaster merged 2 commits intomasterfrom
bugfix/list_member
Mar 22, 2026
Merged

Bugfix/list member#1913
Tlaster merged 2 commits intomasterfrom
bugfix/list_member

Conversation

@Tlaster
Copy link
Contributor

@Tlaster Tlaster commented Mar 22, 2026

No description provided.

@chatgpt-codex-connector
Copy link

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR refactors list-member related presenters/handlers to improve list-member behavior and updates profile action-menu construction to be flow-driven.

Changes:

  • Refactor ProfilePresenter action menu generation into a combined flow (profileMenusFlow) and extract buildProfileMenus(...).
  • Refactor ListMembersPresenter/EditListMemberPresenter to use lazily-initialized flows (and a MutableStateFlow filter) instead of rebuilding flows in remember blocks.
  • Update ListMemberHandler paging/member mutation logic (typed Flow<PagingData<UiProfile>>, transactional writes, optimistic DB updates with rollback on failure).

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

File Description
shared/src/commonMain/kotlin/dev/dimension/flare/ui/presenter/profile/ProfilePresenter.kt Moves profile action menu building to a combined flow and extracts menu builder function.
shared/src/commonMain/kotlin/dev/dimension/flare/ui/presenter/list/ListMembersPresenter.kt Extracts members paging flow into a lazy property and simplifies Compose body.
shared/src/commonMain/kotlin/dev/dimension/flare/ui/presenter/list/EditListMemberPresenter.kt Replaces Compose state filter with MutableStateFlow and combines flows to drive user search paging.
shared/src/commonMain/kotlin/dev/dimension/flare/data/datasource/microblog/handler/ListMemberHandler.kt Adjusts list-members paging API and adds optimistic DB updates for add/remove member.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +55 to 68
database.connect {
if (request == PagingRequest.Refresh) {
database.listDao().deleteMembersByListKey(listKey)
}
database.listDao().insertAllMember(
data.map { item ->
DbListMember(
listKey = listKey,
memberKey = item.key,
)
},
)
database.upsertUsers(data.map { it.toDbUser() })
}
Copy link

Copilot AI Mar 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

createPagingRemoteMediator already wraps onSave inside database.connect { ... } (see BasePagingRemoteMediator.doLoad). Calling database.connect again here creates a nested writer transaction/connection, which is unnecessary and can cause issues depending on the Room driver. Consider removing the inner database.connect {} and performing the DAO writes directly in onSave.

Copilot uses AI. Check for mistakes.
@Tlaster Tlaster merged commit 03e2814 into master Mar 22, 2026
16 of 17 checks passed
@Tlaster Tlaster deleted the bugfix/list_member branch March 22, 2026 08:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants