Skip to content

Commit 5d6b68a

Browse files
Merge pull request #2711 from themeum/fix-announcements
Announcements date filter does not work fixed
2 parents b05d14b + 4554257 commit 5d6b68a

7 files changed

Lines changed: 62 additions & 24 deletions

File tree

assets/core/scss/components/_modal.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@
7979

8080
&-title {
8181
@include tutor-typography('h5', 'semibold', 'secondary', 'heading');
82+
margin: 0;
8283
}
8384

8485
&-subtitle {

assets/core/scss/mixins/_avatars.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
// Avatar sizes map
3232
$tutor-avatar-sizes: (
3333
20: (
34-
font-size: 'tiny',
34+
font-size: 'tiny-2',
3535
icon-size: 12px,
3636
),
3737
24: (

assets/core/scss/utilities/_layout.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ $justify-utils: (
4545
);
4646

4747
$align-items-utils: (
48+
items-normal: normal,
4849
items-start: flex-start,
4950
items-end: flex-end,
5051
items-center: center,

assets/core/ts/components/popover.ts

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,11 +109,23 @@ export const popover = (props: PopoverProps = {}) => ({
109109
const content = this.$refs.content;
110110
if (content) {
111111
content.style.visibility = 'hidden';
112+
// Initialize with off-screen position to avoid flashes if visibility fails
113+
content.style.left = '-9999px';
114+
content.style.top = '-9999px';
112115
}
113116

114117
this.open = true;
115118

116119
const afterShow = () => {
120+
if (!this.open) return;
121+
122+
const dimensions = this.getContentDimensions(content);
123+
// If measurement failed (0 size), Safari might not have rendered it yet. Retry.
124+
if (dimensions.width === 0 && dimensions.height === 0) {
125+
requestAnimationFrame(afterShow);
126+
return;
127+
}
128+
117129
this.updatePosition();
118130
if (content) {
119131
content.style.visibility = 'visible';
@@ -211,6 +223,13 @@ export const popover = (props: PopoverProps = {}) => ({
211223

212224
const triggerRect = trigger.getBoundingClientRect();
213225
const contentDimensions = this.getContentDimensions(content);
226+
227+
// If measurement failed (0 size), retry on next frame
228+
if (this.open && contentDimensions.width === 0 && contentDimensions.height === 0) {
229+
requestAnimationFrame(() => this.updatePosition());
230+
return;
231+
}
232+
214233
const viewport = {
215234
width: window.innerWidth,
216235
height: window.innerHeight,
@@ -331,12 +350,22 @@ export const popover = (props: PopoverProps = {}) => ({
331350
},
332351

333352
getContentDimensions(content: HTMLElement): PopoverDimensions {
334-
const rect = content.getBoundingClientRect();
353+
// Temporarily reset transforms/transitions for accurate measurement
354+
const originalTransform = content.style.transform;
355+
const originalTransition = content.style.transition;
356+
content.style.transform = 'none';
357+
content.style.transition = 'none';
335358

336-
return {
359+
const rect = content.getBoundingClientRect();
360+
const dimensions = {
337361
width: content.offsetWidth || rect.width,
338362
height: content.offsetHeight || rect.height,
339363
};
364+
365+
content.style.transform = originalTransform;
366+
content.style.transition = originalTransition;
367+
368+
return dimensions;
340369
},
341370

342371
convertViewportPositionToContentPosition(content: HTMLElement, position: { top: number; left: number }) {

templates/dashboard/announcements.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,9 @@ class="tutor-dashboard-announcements"
108108
->render();
109109

110110
DateFilter::make()
111-
->type( DateFilter::TYPE_SINGLE )
111+
->type( DateFilter::TYPE_RANGE )
112112
->placement( DateFilter::PLACEMENT_BOTTOM_END )
113+
->hide_initial_label()
113114
->attr( 'class', 'tutor-hidden tutor-sm-flex' )
114115
->render();
115116

@@ -136,8 +137,9 @@ class="tutor-dashboard-announcements"
136137
<div class="tutor-flex tutor-items-center tutor-gap-3">
137138
<?php
138139
DateFilter::make()
139-
->type( DateFilter::TYPE_SINGLE )
140+
->type( DateFilter::TYPE_RANGE )
140141
->placement( DateFilter::PLACEMENT_BOTTOM_END )
142+
->hide_initial_label()
141143
->attr( 'class', 'tutor-sm-hidden' )
142144
->render();
143145

@@ -164,7 +166,7 @@ class="tutor-dashboard-announcements"
164166
<div class="tutor-announcement-item">
165167
<div class="tutor-flex tutor-items-center tutor-justify-between tutor-mb-5">
166168
<div class="tutor-flex tutor-items-center tutor-gap-3">
167-
<?php SvgIcon::make()->name( Icon::ANNOUNCEMENT )->render(); ?>
169+
<?php SvgIcon::make()->name( Icon::ANNOUNCEMENT )->color( Color::IDLE )->render(); ?>
168170
<div class="tutor-tiny tutor-text-secondary">
169171
<?php echo esc_html( tutor_i18n_get_formated_date( $announcement->post_date ) ); ?>
170172
</div>

templates/dashboard/instructor/home.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,7 @@ function ( $carry, $section ) {
325325
class="tutor-flex tutor-flex-column tutor-gap-6"
326326
>
327327
<!-- Filters -->
328-
<div class="tutor-flex tutor-justify-between tutor-align-center">
328+
<div class="tutor-flex tutor-justify-between tutor-items-center">
329329
<?php if ( $tutor_pro_enabled ) : ?>
330330
<?php DateFilter::make()->type( DateFilter::TYPE_RANGE )->render(); ?>
331331
<?php endif; ?>
@@ -445,7 +445,7 @@ class="tutor-dashboard-home-card"
445445
x-show="watch('top_performing_courses')"
446446
x-cloak
447447
>
448-
<div class="tutor-flex tutor-row tutor-justify-between tutor-align-center tutor-gap-9">
448+
<div class="tutor-flex tutor-row tutor-justify-between tutor-items-center tutor-gap-9">
449449
<div class="tutor-small">
450450
<?php esc_html_e( 'Top Performing Courses', 'tutor' ); ?>
451451
</div>

templates/dashboard/instructor/home/recent-student-review-item.php

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -24,31 +24,36 @@
2424
</div>
2525

2626
<!-- Review Content -->
27-
<div class="tutor-flex-1 tutor-flex tutor-flex-column tutor-gap-3">
27+
<div class="tutor-flex-1 tutor-flex tutor-flex-column tutor-gap-4">
2828
<!-- Header: Name and Rating -->
2929
<div class="tutor-flex tutor-justify-between tutor-items-start">
30-
<div class="tutor-flex tutor-flex-column tutor-gap-1">
30+
<div class="tutor-flex tutor-flex-column tutor-gap-1 tutor-flex-1">
3131
<div class="tutor-small tutor-font-semibold">
3232
<?php echo esc_html( $review['user']['name'] ); ?>
3333
</div>
34-
<div class="tutor-flex tutor-gap-5 tutor-items-center">
35-
<span class="tutor-badge"><?php echo esc_html( $review['course_name'] ); ?></span>
36-
<span class="tutor-text-subdued tutor-tiny">
37-
<?php
38-
echo esc_html(
39-
sprintf(
40-
/* translators: %s: Human-readable time difference. */
41-
__( '%s ago', 'tutor' ),
42-
human_time_diff( strtotime( $review['date'] ) )
43-
)
44-
);
45-
?>
46-
</span>
34+
<div class="tutor-flex tutor-gap-5 tutor-items-center tutor-sm-flex-column tutor-sm-items-normal tutor-sm-gap-4">
35+
<div class="tutor-badge"><?php echo esc_html( $review['course_name'] ); ?></div>
36+
<div class="tutor-flex tutor-items-center tutor-justify-between">
37+
<div class="tutor-hidden tutor-sm-block">
38+
<?php StarRating::make()->rating( $review['rating'] ?? 0 )->render(); ?>
39+
</div>
40+
<div class="tutor-text-subdued tutor-tiny">
41+
<?php
42+
echo esc_html(
43+
sprintf(
44+
/* translators: %s: Human-readable time difference. */
45+
__( '%s ago', 'tutor' ),
46+
human_time_diff( strtotime( $review['date'] ) )
47+
)
48+
);
49+
?>
50+
</div>
51+
</div>
4752
</div>
4853
</div>
4954

5055
<!-- Star Rating -->
51-
<div>
56+
<div class="tutor-sm-hidden">
5257
<?php StarRating::make()->rating( $review['rating'] ?? 0 )->render(); ?>
5358
</div>
5459
</div>

0 commit comments

Comments
 (0)