Skip to content

Conversation

@GirlBossRush
Copy link
Contributor

Details

This PR defers table fetch calls after the element becomes visible, fixing excessive API requests on tabbed layouts.

@GirlBossRush GirlBossRush added this to the Release 2025.12 milestone Jan 5, 2026
@GirlBossRush GirlBossRush self-assigned this Jan 5, 2026
@GirlBossRush GirlBossRush requested a review from a team as a code owner January 5, 2026 17:10
@GirlBossRush GirlBossRush added the area:frontend Features or issues related to the browser, TypeScript, Node.js, etc label Jan 5, 2026
@netlify
Copy link

netlify bot commented Jan 5, 2026

Deploy Preview for authentik-storybook ready!

Name Link
🔨 Latest commit 361814a
🔍 Latest deploy log https://app.netlify.com/projects/authentik-storybook/deploys/695c3bdd26b12a000824c6b7
😎 Deploy Preview https://deploy-preview-19194--authentik-storybook.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify
Copy link

netlify bot commented Jan 5, 2026

Deploy Preview for authentik-docs ready!

Name Link
🔨 Latest commit 99f3c07
🔍 Latest deploy log https://app.netlify.com/projects/authentik-docs/deploys/695bf0a59cfe3f0008278100
😎 Deploy Preview https://deploy-preview-19194--authentik-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@codecov
Copy link

codecov bot commented Jan 5, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 93.39%. Comparing base (2c813cb) to head (361814a).
⚠️ Report is 2 commits behind head on main.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #19194      +/-   ##
==========================================
+ Coverage   93.12%   93.39%   +0.26%     
==========================================
  Files         949      949              
  Lines       52269    52269              
==========================================
+ Hits        48678    48815     +137     
+ Misses       3591     3454     -137     
Flag Coverage Δ
conformance 38.79% <ø> (+<0.01%) ⬆️
e2e 44.69% <ø> (+1.02%) ⬆️
integration 23.45% <ø> (+<0.01%) ⬆️
unit 91.59% <ø> (+<0.01%) ⬆️
unit-migrate 91.64% <ø> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

}

:host {
display: block;
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Ensures that the intersection observer can measure the threshold accurately.

implements TableLike
{
static styles: CSSResult[] = [
PFBase,
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Vestigial

*/
protected emptyStateMessage = msg("No objects found.");

/**
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Re-ordered to avoid "this.foobar used before assignment"

Comment on lines +348 to +346
if (changedProperties.has("visible") && this.hasUpdated) {
this.#synchronizeRefreshSchedule();
}
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Subtly different from the call in firstUpdated, only invoking here when visible changes.

@github-actions
Copy link
Contributor

github-actions bot commented Jan 5, 2026

authentik PR Installation instructions

Instructions for docker-compose

Add the following block to your .env file:

AUTHENTIK_IMAGE=ghcr.io/goauthentik/dev-server
AUTHENTIK_TAG=gh-361814abc7d34aa68fff345604f30803f169b723
AUTHENTIK_OUTPOSTS__CONTAINER_IMAGE_BASE=ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)s

Afterwards, run the upgrade commands from the latest release notes.

Instructions for Kubernetes

Add the following block to your values.yml file:

authentik:
    outposts:
        container_image_base: ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)s
global:
    image:
        repository: ghcr.io/goauthentik/dev-server
        tag: gh-361814abc7d34aa68fff345604f30803f169b723

Afterwards, run the upgrade commands from the latest release notes.

}

render(): TemplateResult {
protected override render(): SlottedTemplateResult {
Copy link
Contributor Author

Choose a reason for hiding this comment

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

We could hypothetically do something like this here:

if (this.visible) {
  return nothing;
}

However, the @intersectionObserver decorator doesn't handle this very well when combined with the <ak-tabs> element. We can achieve this with something like an <ak-tabpanel> element would handle visibility checks, plus all the attribute copy-pasting we do to make ARIA work.

Comment on lines +81 to +89
.ak-fade-in {
opacity: 0;
animation-fill-mode: forwards;
animation-name: ak-fade-in;
animation-duration: 150ms;
animation-iteration-count: 1;
animation-timing-function: linear;
animation-delay: 500ms;
}
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Avoids UI flickering when quickly transitioning from loading state.

*/
@state()
protected loading = false;
#deferredRefreshRequestAt: Date | null = null;
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Timestamp vs boolean for future debug logging

@GirlBossRush GirlBossRush force-pushed the deferred-table-content-fetching branch 3 times, most recently from 10a256e to ebfeb57 Compare January 5, 2026 21:10
@GirlBossRush GirlBossRush force-pushed the deferred-table-content-fetching branch from ebfeb57 to 361814a Compare January 5, 2026 22:31
Copy link
Contributor

@kensternberg-authentik kensternberg-authentik left a comment

Choose a reason for hiding this comment

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

The useDefault issue is harmless, so let's go for it.

@netlify
Copy link

netlify bot commented Jan 5, 2026

Deploy Preview for authentik-integrations ready!

Name Link
🔨 Latest commit 361814a
🔍 Latest deploy log https://app.netlify.com/projects/authentik-integrations/deploys/695c3bddeccf1000082dd108
😎 Deploy Preview https://deploy-preview-19194--authentik-integrations.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@GirlBossRush GirlBossRush added the backport/version-2025.12 Add this label to PRs to backport changes to version-2025.12 label Jan 5, 2026
@GirlBossRush GirlBossRush merged commit 24d99ea into main Jan 5, 2026
102 checks passed
@GirlBossRush GirlBossRush deleted the deferred-table-content-fetching branch January 5, 2026 23:02
authentik-automation bot pushed a commit that referenced this pull request Jan 5, 2026
This cherry-pick has conflicts that need manual resolution.

Original PR: #19194
Original commit: 24d99ea
@authentik-automation
Copy link
Contributor

⚠️ Cherry-pick to version-2025.12 has conflicts: #19198

GirlBossRush added a commit that referenced this pull request Jan 5, 2026
GirlBossRush added a commit that referenced this pull request Jan 5, 2026
…ersion-2025.12) (#19198)

* web: Fix user library colors, modal z-indexes, table progress bars (#19152)

* Fix progress bar fade out, positioning, labels.

* Export parts. Fix z-index, colors.

* Fix clickable area.

* Ignore clickable icons.

* web: Defer table refresh, visibility checks. (#19194)

Fix types, args.

---------

Co-authored-by: Teffen Ellis <[email protected]>
kensternberg-authentik added a commit that referenced this pull request Jan 6, 2026
* main:
  outpost/proxyv2: reduce max number of postgres connections (#19211)
  web/maintenance: lint pass to add missing HTMLElementEventMap entries (#18953)
  translate: Updates for project authentik and language pt_BR (#19082)
  core: bump goauthentik.io/api/v3 from 3.2026020.6 to 3.2026020.7 (#19202)
  lifecycle/aws: bump aws-cdk from 2.1100.1 to 2.1100.2 in /lifecycle/aws (#19203)
  core: bump axllent/mailpit from v1.28.0 to v1.28.1 in /tests/e2e (#19204)
  web: bump knip from 5.79.0 to 5.80.0 in /web (#19207)
  website/integrations: glpi: add step (#19208)
  admin/files: support %(theme)s variable in media file paths (#19108)
  web: bump the eslint group across 1 directory with 3 updates (#19205)
  core: add last_login filter to users API (#18993)
  website/docs: rewrite section about users and perms (#19195)
  rbac: Add show all to roles tab, add role tab to groups (#19097)
  web: Defer table refresh, visibility checks. (#19194)
  Add docs for roles (#19196)
  web: Merge branch -- Stale notifications, synchronized context objects, rendering fixes (#19141)
  root: codespell: ignore Python virtual env, group patterns. (#19180)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:frontend Features or issues related to the browser, TypeScript, Node.js, etc backport/version-2025.12 Add this label to PRs to backport changes to version-2025.12

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants