-
Notifications
You must be signed in to change notification settings - Fork 12
feat(looker-studio): create a new Edge App that displays Looker Studio dashboards #612
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
- Add embed_url setting to accept Looker Studio URLs or iframe embed code - Parse iframe HTML snippets to extract src attribute - Add refresh_interval setting (default: 60 seconds)
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
There was a problem hiding this 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 introduces a new Edge App for displaying Looker Studio dashboards. The app embeds Looker Studio content via an iframe with configurable URL and auto-refresh functionality.
Changes:
- New Looker Studio Edge App with iframe-based dashboard embedding
- Auto-refresh capability with configurable interval
- URL extraction from iframe embed code snippets
Reviewed changes
Copilot reviewed 9 out of 11 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| edge-apps/looker-studio/static/img/icon.svg | SVG icon for the Looker Studio app |
| edge-apps/looker-studio/src/main.ts | Core functionality for iframe loading and refresh logic |
| edge-apps/looker-studio/src/css/style.css | Styling for fullscreen iframe display |
| edge-apps/looker-studio/screenly_qc.yml | QC manifest configuration |
| edge-apps/looker-studio/screenly.yml | Production manifest configuration |
| edge-apps/looker-studio/package.json | Package dependencies and build scripts |
| edge-apps/looker-studio/index.html | HTML structure with iframe element |
| edge-apps/looker-studio/bun.lock | Lockfile for dependencies |
| edge-apps/looker-studio/README.md | Documentation for deployment and configuration |
| edge-apps/looker-studio/.ignore | Screenly ignore patterns |
| edge-apps/looker-studio/.gitignore | Git ignore patterns |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| The app accepts the following settings via `screenly.yml`: | ||
|
|
||
| - `message` - The message to display on the screen (defaults to "Hello, Mars!") |
Copilot
AI
Jan 16, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The documentation incorrectly references a message setting. Based on the manifest files, the actual settings are embed_url and refresh_interval. This should be updated to reflect the correct configuration options.
| - `message` - The message to display on the screen (defaults to "Hello, Mars!") | |
| - `embed_url` - The Looker Studio embed URL to display on the screen. | |
| - `refresh_interval` - How often to refresh the embed (in seconds). |
| type: string | ||
| schema_version: 1 | ||
| refresh_interval: | ||
| type: string |
Copilot
AI
Jan 16, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The refresh_interval setting has type 'string' but the code in main.ts expects a number and performs numerical operations (line 22 uses it as number, line 57 multiplies by 1000). The type should be 'number' to match the code's expectations.
| type: string | |
| type: number |
| src="about:blank" | ||
| width="100%" | ||
| height="100%" | ||
| frameborder="0" |
Copilot
AI
Jan 16, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The frameborder attribute is deprecated in HTML5. Use CSS border: none; instead, which is already applied in the stylesheet.
| frameborder="0" |
PR Code Suggestions ✨Explore these optional code suggestions:
|
PR Type
Enhancement
Description
Parse embed URL or iframe snippet
Load dashboard in full-screen iframe
Auto-refresh dashboard at set interval
Add HTML, CSS, scripts, and manifest
Diagram Walkthrough
File Walkthrough
2 files
Implement iframe embed and auto-refresh logicAdd HTML template for Looker Studio dashboard1 files
Add full-screen iframe styling3 files
Ignore node_modules directoryDefine manifest and settings schemaAdd QC manifest configuration1 files
Add deployment and configuration instructions1 files
Configure dependencies and build scripts