diff --git a/apps/lfx-one/src/app/modules/dashboards/executive-director/components/brand-health-drawer/brand-health-drawer.component.html b/apps/lfx-one/src/app/modules/dashboards/executive-director/components/brand-health-drawer/brand-health-drawer.component.html index 2cddf827c..e62ba57c9 100644 --- a/apps/lfx-one/src/app/modules/dashboards/executive-director/components/brand-health-drawer/brand-health-drawer.component.html +++ b/apps/lfx-one/src/app/modules/dashboards/executive-director/components/brand-health-drawer/brand-health-drawer.component.html @@ -152,8 +152,8 @@

Performing Well

- No brand mention data available -

No brand mentions are currently available for this foundation

+ No brand mention activity detected +

Engage with marketing ops to activate campaigns and start tracking results.

diff --git a/apps/lfx-one/src/app/modules/dashboards/executive-director/components/email-ctr-drawer/email-ctr-drawer.component.html b/apps/lfx-one/src/app/modules/dashboards/executive-director/components/email-ctr-drawer/email-ctr-drawer.component.html index 5a0e3b59a..46cf4664b 100644 --- a/apps/lfx-one/src/app/modules/dashboards/executive-director/components/email-ctr-drawer/email-ctr-drawer.component.html +++ b/apps/lfx-one/src/app/modules/dashboards/executive-director/components/email-ctr-drawer/email-ctr-drawer.component.html @@ -107,8 +107,8 @@

Performing Well

-

No active campaigns detected

-

No email, paid, or attribution activity is currently available for this foundation

+

No email or paid activity detected

+

Engage with marketing ops to activate campaigns and start tracking results.

diff --git a/apps/lfx-one/src/app/modules/dashboards/executive-director/components/engaged-community-drawer/engaged-community-drawer.component.html b/apps/lfx-one/src/app/modules/dashboards/executive-director/components/engaged-community-drawer/engaged-community-drawer.component.html index b0ea02394..4418a3518 100644 --- a/apps/lfx-one/src/app/modules/dashboards/executive-director/components/engaged-community-drawer/engaged-community-drawer.component.html +++ b/apps/lfx-one/src/app/modules/dashboards/executive-director/components/engaged-community-drawer/engaged-community-drawer.component.html @@ -53,65 +53,80 @@

-
- -

Needs Your Attention

+ class="flex flex-col rounded-lg border border-gray-200 border-l-4 border-l-blue-600 bg-white overflow-hidden" + role="status" + data-testid="engaged-community-drawer-no-data"> +
+ +
+

No community engagement activity detected

+

Engage with marketing ops to activate campaigns and start tracking results.

+
- - @for (action of attentionActions(); track action.title) { -
-
- {{ action.title }} -

{{ action.description }}

-
- @if (action.priority === 'high') { - - } @else { - - } +
+ } @else { + + @if (attentionActions().length > 0 || attentionInsights().length > 0) { +
+
+ +

Needs Your Attention

- } - @for (insight of attentionInsights(); track insight.text) { -
- - {{ insight.text }} -
- } -
- } + @for (action of attentionActions(); track action.title) { +
+
+ {{ action.title }} +

{{ action.description }}

+
+ @if (action.priority === 'high') { + + } @else { + + } +
+ } - - @if (performingActions().length > 0 || performingInsights().length > 0) { -
-
- -

Performing Well

+ @for (insight of attentionInsights(); track insight.text) { +
+ + {{ insight.text }} +
+ }
+ } - @for (action of performingActions(); track action.title) { -
-
- {{ action.title }} -

{{ action.description }}

-
+ + @if (performingActions().length > 0 || performingInsights().length > 0) { +
+
+ +

Performing Well

- } - @for (insight of performingInsights(); track insight.text) { -
- - {{ insight.text }} -
- } -
+ @for (action of performingActions(); track action.title) { +
+
+ {{ action.title }} +

{{ action.description }}

+
+
+ } + + @for (insight of performingInsights(); track insight.text) { +
+ + {{ insight.text }} +
+ } +
+ } } diff --git a/apps/lfx-one/src/app/modules/dashboards/executive-director/components/engaged-community-drawer/engaged-community-drawer.component.ts b/apps/lfx-one/src/app/modules/dashboards/executive-director/components/engaged-community-drawer/engaged-community-drawer.component.ts index 7ccd27f4b..06c3c50b5 100644 --- a/apps/lfx-one/src/app/modules/dashboards/executive-director/components/engaged-community-drawer/engaged-community-drawer.component.ts +++ b/apps/lfx-one/src/app/modules/dashboards/executive-director/components/engaged-community-drawer/engaged-community-drawer.component.ts @@ -53,6 +53,10 @@ export class EngagedCommunityDrawerComponent { weeklyTrend: [], }); // === Computed Signals === + protected readonly hasNoData: Signal = computed(() => { + const { totalMembers, changePercentage, monthlyData } = this.data(); + return (totalMembers === 0 && monthlyData.length === 0) || (changePercentage === 0 && monthlyData.length === 0); + }); protected readonly formattedTotalMembers: Signal = computed(() => formatNumber(this.data().totalMembers)); protected readonly recommendedActions: Signal = this.initRecommendedActions(); protected readonly keyInsights: Signal = this.initKeyInsights(); diff --git a/apps/lfx-one/src/app/modules/dashboards/executive-director/components/flywheel-conversion-drawer/flywheel-conversion-drawer.component.html b/apps/lfx-one/src/app/modules/dashboards/executive-director/components/flywheel-conversion-drawer/flywheel-conversion-drawer.component.html index dbc3a315e..8507e9a48 100644 --- a/apps/lfx-one/src/app/modules/dashboards/executive-director/components/flywheel-conversion-drawer/flywheel-conversion-drawer.component.html +++ b/apps/lfx-one/src/app/modules/dashboards/executive-director/components/flywheel-conversion-drawer/flywheel-conversion-drawer.component.html @@ -61,65 +61,80 @@

-
- -

Needs Your Attention

+ class="flex flex-col rounded-lg border border-gray-200 border-l-4 border-l-blue-600 bg-white overflow-hidden" + role="status" + data-testid="flywheel-conversion-drawer-no-data"> +
+ +
+

No flywheel conversion activity detected

+

Engage with marketing ops to activate campaigns and start tracking results.

+
- - @for (action of attentionActions(); track action.title) { -
-
- {{ action.title }} -

{{ action.description }}

-
- @if (action.priority === 'high') { - - } @else { - - } +
+ } @else { + + @if (attentionActions().length > 0 || attentionInsights().length > 0) { +
+
+ +

Needs Your Attention

- } - @for (insight of attentionInsights(); track insight.text) { -
- - {{ insight.text }} -
- } -
- } + @for (action of attentionActions(); track action.title) { +
+
+ {{ action.title }} +

{{ action.description }}

+
+ @if (action.priority === 'high') { + + } @else { + + } +
+ } - - @if (performingActions().length > 0 || performingInsights().length > 0) { -
-
- -

Performing Well

+ @for (insight of attentionInsights(); track insight.text) { +
+ + {{ insight.text }} +
+ }
+ } - @for (action of performingActions(); track action.title) { -
-
- {{ action.title }} -

{{ action.description }}

-
+ + @if (performingActions().length > 0 || performingInsights().length > 0) { +
+
+ +

Performing Well

- } - @for (insight of performingInsights(); track insight.text) { -
- - {{ insight.text }} -
- } -
+ @for (action of performingActions(); track action.title) { +
+
+ {{ action.title }} +

{{ action.description }}

+
+
+ } + + @for (insight of performingInsights(); track insight.text) { +
+ + {{ insight.text }} +
+ } +
+ } } diff --git a/apps/lfx-one/src/app/modules/dashboards/executive-director/components/flywheel-conversion-drawer/flywheel-conversion-drawer.component.ts b/apps/lfx-one/src/app/modules/dashboards/executive-director/components/flywheel-conversion-drawer/flywheel-conversion-drawer.component.ts index a294da2b2..51032dec2 100644 --- a/apps/lfx-one/src/app/modules/dashboards/executive-director/components/flywheel-conversion-drawer/flywheel-conversion-drawer.component.ts +++ b/apps/lfx-one/src/app/modules/dashboards/executive-director/components/flywheel-conversion-drawer/flywheel-conversion-drawer.component.ts @@ -64,6 +64,10 @@ export class FlywheelConversionDrawerComponent { // === Computed Signals === protected readonly formattedEventAttendees: Signal = computed(() => formatNumber(this.data().funnel.eventAttendees)); protected readonly reengagement: Signal> = computed(() => getFlywheelReengagement(this.data())); + protected readonly hasNoData: Signal = computed(() => { + const { conversionRate, funnel, monthlyData } = this.data(); + return conversionRate === 0 && funnel.eventAttendees === 0 && monthlyData.length === 0; + }); protected readonly reengagementRate: Signal = computed(() => `${this.reengagement().reengagementRate.toFixed(1)}%`); protected readonly recommendedActions: Signal = computed(() => buildFlywheelRecommendedActions(this.data())); protected readonly keyInsights: Signal = computed(() => buildFlywheelKeyInsights(this.data())); diff --git a/apps/lfx-one/src/app/modules/dashboards/executive-director/components/member-acquisition-drawer/member-acquisition-drawer.component.html b/apps/lfx-one/src/app/modules/dashboards/executive-director/components/member-acquisition-drawer/member-acquisition-drawer.component.html index 93d2895d8..ea039ba5e 100644 --- a/apps/lfx-one/src/app/modules/dashboards/executive-director/components/member-acquisition-drawer/member-acquisition-drawer.component.html +++ b/apps/lfx-one/src/app/modules/dashboards/executive-director/components/member-acquisition-drawer/member-acquisition-drawer.component.html @@ -153,7 +153,7 @@

Performing Well

No membership activity detected

-

No member acquisition data is currently available for this foundation

+

Engage with marketing ops to activate campaigns and start tracking results.

diff --git a/apps/lfx-one/src/app/modules/dashboards/executive-director/components/member-retention-drawer/member-retention-drawer.component.html b/apps/lfx-one/src/app/modules/dashboards/executive-director/components/member-retention-drawer/member-retention-drawer.component.html index f840e1c75..9b6c5ac7f 100644 --- a/apps/lfx-one/src/app/modules/dashboards/executive-director/components/member-retention-drawer/member-retention-drawer.component.html +++ b/apps/lfx-one/src/app/modules/dashboards/executive-director/components/member-retention-drawer/member-retention-drawer.component.html @@ -128,8 +128,8 @@

Performing Well

-

No retention data available

-

No member retention data is currently available for this foundation

+

No retention activity detected

+

Engage with marketing ops to activate campaigns and start tracking results.

diff --git a/apps/lfx-one/src/app/modules/dashboards/executive-director/components/social-media-drawer/social-media-drawer.component.html b/apps/lfx-one/src/app/modules/dashboards/executive-director/components/social-media-drawer/social-media-drawer.component.html index a5ad57355..a74efe540 100644 --- a/apps/lfx-one/src/app/modules/dashboards/executive-director/components/social-media-drawer/social-media-drawer.component.html +++ b/apps/lfx-one/src/app/modules/dashboards/executive-director/components/social-media-drawer/social-media-drawer.component.html @@ -140,7 +140,7 @@

Performing Well

No social media activity detected

-

No follower or engagement data is currently available for this foundation

+

Engage with marketing ops to activate campaigns and start tracking results.

diff --git a/apps/lfx-one/src/app/modules/dashboards/executive-director/components/website-visits-drawer/website-visits-drawer.component.html b/apps/lfx-one/src/app/modules/dashboards/executive-director/components/website-visits-drawer/website-visits-drawer.component.html index 59465e9d4..c4c60d890 100644 --- a/apps/lfx-one/src/app/modules/dashboards/executive-director/components/website-visits-drawer/website-visits-drawer.component.html +++ b/apps/lfx-one/src/app/modules/dashboards/executive-director/components/website-visits-drawer/website-visits-drawer.component.html @@ -124,8 +124,8 @@

Performing Well

-

No website traffic data available

-

No web session data is currently available for this foundation

+

No website traffic detected

+

Engage with marketing ops to activate campaigns and start tracking results.