Improve group callout dismissal: Use GlobalIDType for GroupCalloutType and consider Apollo cache

Summary

Follow-up from !208668 (merged) (comment 2867697128) to improve the group callout dismissal mechanism.

Problem

Currently, when fetching group callouts from the backend, they come over as plain IDs rather than GlobalIDs. This creates inconsistency with how groupGraphQLId is supposed to handle the comparison in user_group_callout_dismisser.vue.

Additionally, when using skipQuery for the premium message callout, clicking browser back causes the callout to reappear, indicating that the current implementation is doing double duty to work around this issue.

Proposed Solution

  1. Fix group id mismatch: Use group id to compare instead of the graphQL id
  2. Consider Apollo cache usage: Investigate whether we can make better use of Apollo cache to handle callout dismissal state, which could eliminate the need for the current workaround and prevent callouts from reappearing on browser back navigation.

Related

Labels: devops::growth, group::acquisition, section::growth, backend, frontend, type::maintenance

Edited by 🤖 GitLab Bot 🤖