From 37375186d4dbe78f3cf91be4f97b34c309326d3e Mon Sep 17 00:00:00 2001
From: Carlos Santos <4a.santos@gmail.com>
Date: Thu, 31 Jul 2025 16:18:42 +0200
Subject: [PATCH] frontend: Added share link into the layout when only one
participant is joined - enhance share meeting link component with dynamic
title, subtitle, and additional info
---
.../share-meeting-link.component.html | 16 +++++++-
.../share-meeting-link.component.scss | 37 ++++++++++++++++++-
.../share-meeting-link.component.ts | 13 ++++---
.../lib/pages/meeting/meeting.component.html | 15 ++++++++
.../lib/pages/meeting/meeting.component.scss | 8 ++++
.../lib/pages/meeting/meeting.component.ts | 17 +++++++++
.../src/assets/styles/_tokens-themes.scss | 2 +-
7 files changed, 98 insertions(+), 10 deletions(-)
diff --git a/frontend/projects/shared-meet-components/src/lib/components/share-meeting-link/share-meeting-link.component.html b/frontend/projects/shared-meet-components/src/lib/components/share-meeting-link/share-meeting-link.component.html
index 78b58ee..ec14867 100644
--- a/frontend/projects/shared-meet-components/src/lib/components/share-meeting-link/share-meeting-link.component.html
+++ b/frontend/projects/shared-meet-components/src/lib/components/share-meeting-link/share-meeting-link.component.html
@@ -1,5 +1,13 @@
-
-
Invite others with this meeting link
+
+ @if (title) {
+
{{ title }}
+ }
+
+ @if (subtitle) {
+
+ {{ subtitle }}
+
+ }
{{ meetingUrl }}
@@ -7,4 +15,8 @@
content_copy
+
+ @if (additionalInfo) {
+
{{ additionalInfo }}
+ }
diff --git a/frontend/projects/shared-meet-components/src/lib/components/share-meeting-link/share-meeting-link.component.scss b/frontend/projects/shared-meet-components/src/lib/components/share-meeting-link/share-meeting-link.component.scss
index ee8bbcc..565803a 100644
--- a/frontend/projects/shared-meet-components/src/lib/components/share-meeting-link/share-meeting-link.component.scss
+++ b/frontend/projects/shared-meet-components/src/lib/components/share-meeting-link/share-meeting-link.component.scss
@@ -6,8 +6,41 @@
text-align: center;
font-size: var(--ov-meet-font-size-sm);
font-weight: var(--ov-meet-font-weight-light);
- color: var(--ov-meet-text-primary);
+ color: var(--ov-meet-text-on-surface);
margin-bottom: var(--ov-meet-spacing-sm);
+
+ &.sm {
+ font-size: var(--ov-meet-font-size-sm);
+ }
+ &.md {
+ font-size: var(--ov-meet-font-size-md);
+ }
+ &.lg {
+ font-size: var(--ov-meet-font-size-lg);
+ }
+ &.xl {
+ font-size: var(--ov-meet-font-size-xl);
+ }
+
+ &.light {
+ font-weight: var(--ov-meet-font-weight-light);
+ }
+ &.semibold {
+ font-weight: var(--ov-meet-font-weight-semibold);
+ }
+ &.bold {
+ font-weight: var(--ov-meet-font-weight-bold);
+ }
+ &.normal {
+ font-weight: var(--ov-meet-font-weight-normal);
+ }
+ }
+
+ .meeting-url-badge-subtitle{
+ text-align: center;
+ font-size: var(--ov-meet-font-size-md);
+ color: var(--ov-meet-text-on-surface);
+ margin: var(--ov-meet-spacing-sm);
}
.meeting-url-badge-container {
@include ov-flex-center;
@@ -29,7 +62,7 @@
.meeting-url-text {
font-family: var(--ov-meet-font-family-mono, 'Roboto Mono', monospace);
font-size: var(--ov-meet-font-size-sm);
- color: var(--ov-meet-text-secondary);
+ color: var(--ov-meet-text-on-surface);
font-weight: var(--ov-meet-font-weight-medium);
letter-spacing: 0.025em;
user-select: none;
diff --git a/frontend/projects/shared-meet-components/src/lib/components/share-meeting-link/share-meeting-link.component.ts b/frontend/projects/shared-meet-components/src/lib/components/share-meeting-link/share-meeting-link.component.ts
index 8df4514..3c65647 100644
--- a/frontend/projects/shared-meet-components/src/lib/components/share-meeting-link/share-meeting-link.component.ts
+++ b/frontend/projects/shared-meet-components/src/lib/components/share-meeting-link/share-meeting-link.component.ts
@@ -1,6 +1,4 @@
-import { Component } from '@angular/core';
-import { Input } from '@angular/core';
-import { Output, EventEmitter } from '@angular/core';
+import { Component, Input, Output, EventEmitter } from '@angular/core';
import { MatButtonModule, MatIconButton } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon';
@@ -12,6 +10,11 @@ import { MatIconModule } from '@angular/material/icon';
styleUrl: './share-meeting-link.component.scss'
})
export class ShareMeetingLinkComponent {
- @Input() meetingUrl!: string;
- @Output() copyClicked = new EventEmitter
();
+ @Input() meetingUrl!: string;
+ @Input() title: string = 'Invite others with this meeting link';
+ @Input() titleSize: 'sm' | 'md' | 'lg' | 'xl' = 'sm';
+ @Input() titleWeight: 'light' | 'semibold' | 'bold' | 'normal' = 'normal';
+ @Input() subtitle?: string;
+ @Input() additionalInfo?: string;
+ @Output() copyClicked = new EventEmitter();
}
diff --git a/frontend/projects/shared-meet-components/src/lib/pages/meeting/meeting.component.html b/frontend/projects/shared-meet-components/src/lib/pages/meeting/meeting.component.html
index 41fa9da..8e96529 100644
--- a/frontend/projects/shared-meet-components/src/lib/pages/meeting/meeting.component.html
+++ b/frontend/projects/shared-meet-components/src/lib/pages/meeting/meeting.component.html
@@ -100,6 +100,21 @@
>
+
+