Skip to content

Commit

Permalink
Change server rules to be collapsible (mastodon#33039)
Browse files Browse the repository at this point in the history
  • Loading branch information
Gargron authored Nov 29, 2024
1 parent 4635ce2 commit 986a367
Show file tree
Hide file tree
Showing 5 changed files with 51 additions and 131 deletions.
74 changes: 18 additions & 56 deletions app/javascript/entrypoints/public.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -230,62 +230,6 @@ function loaded() {
}
},
);

Rails.delegate(
document,
'button.status__content__spoiler-link',
'click',
function () {
if (!(this instanceof HTMLButtonElement)) return;

const statusEl = this.parentNode?.parentNode;

if (
!(
statusEl instanceof HTMLDivElement &&
statusEl.classList.contains('.status__content')
)
)
return;

if (statusEl.dataset.spoiler === 'expanded') {
statusEl.dataset.spoiler = 'folded';
this.textContent = new IntlMessageFormat(
localeData['status.show_more'] ?? 'Show more',
locale,
).format() as string;
} else {
statusEl.dataset.spoiler = 'expanded';
this.textContent = new IntlMessageFormat(
localeData['status.show_less'] ?? 'Show less',
locale,
).format() as string;
}
},
);

document
.querySelectorAll<HTMLButtonElement>('button.status__content__spoiler-link')
.forEach((spoilerLink) => {
const statusEl = spoilerLink.parentNode?.parentNode;

if (
!(
statusEl instanceof HTMLDivElement &&
statusEl.classList.contains('.status__content')
)
)
return;

const message =
statusEl.dataset.spoiler === 'expanded'
? (localeData['status.show_less'] ?? 'Show less')
: (localeData['status.show_more'] ?? 'Show more');
spoilerLink.textContent = new IntlMessageFormat(
message,
locale,
).format() as string;
});
}

Rails.delegate(
Expand Down Expand Up @@ -439,6 +383,24 @@ Rails.delegate(document, '#registration_new_user,#new_user', 'submit', () => {
});
});

Rails.delegate(document, '.rules-list button', 'click', ({ target }) => {
if (!(target instanceof HTMLElement)) {
return;
}

const button = target.closest('button');

if (!button) {
return;
}

if (button.ariaExpanded === 'true') {
button.ariaExpanded = 'false';
} else {
button.ariaExpanded = 'true';
}
});

function main() {
ready(loaded).catch((error: unknown) => {
console.error(error);
Expand Down
11 changes: 0 additions & 11 deletions app/javascript/styles/mastodon-light/diff.scss
Original file line number Diff line number Diff line change
Expand Up @@ -108,17 +108,6 @@
background: lighten($white, 4%);
}

// Change the background colors of status__content__spoiler-link
.reply-indicator__content .status__content__spoiler-link,
.status__content .status__content__spoiler-link {
background: $ui-base-color;

&:hover,
&:focus {
background: lighten($ui-base-color, 4%);
}
}

.account-gallery__item a {
background-color: $ui-base-color;
}
Expand Down
32 changes: 30 additions & 2 deletions app/javascript/styles/mastodon/about.scss
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,41 @@ $fluid-breakpoint: $maximum-width + 20px;
padding-inline-start: 3em;
font-weight: 500;
counter-increment: list-counter;
min-height: 4ch;

button {
background: transparent;
border: 0;
padding: 0;
margin: 0;
text-align: start;
font: inherit;

&:hover,
&:focus,
&:active {
background: transparent;
}

&[aria-expanded='false'] .rules-list__hint {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;

@supports (-webkit-line-clamp: 2) {
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
white-space: normal;
}
}
}

&::before {
content: counter(list-counter);
position: absolute;
inset-inline-start: 0;
top: 50%;
transform: translateY(-50%);
top: 1em;
background: $highlight-text-color;
color: $ui-base-color;
border-radius: 50%;
Expand Down
60 changes: 0 additions & 60 deletions app/javascript/styles/mastodon/components.scss
Original file line number Diff line number Diff line change
Expand Up @@ -1077,26 +1077,6 @@ body > [data-popper-placement] {
color: $highlight-text-color;
}

.status__content__spoiler-link {
background: $action-button-color;

&:hover,
&:focus {
background: lighten($action-button-color, 7%);
text-decoration: none;
}

&::-moz-focus-inner {
border: 0;
}

&::-moz-focus-inner,
&:focus,
&:active {
outline: 0 !important;
}
}

.status__content__text {
display: none;

Expand Down Expand Up @@ -1354,21 +1334,6 @@ body > [data-popper-placement] {
color: $dark-text-color;
}

.status__content__spoiler-link {
display: inline-block;
border-radius: 2px;
background: transparent;
border: 0;
color: $inverted-text-color;
font-weight: 700;
font-size: 11px;
padding: 0 6px;
text-transform: uppercase;
line-height: 20px;
cursor: pointer;
vertical-align: top;
}

.status__wrapper--filtered {
color: $dark-text-color;
border: 0;
Expand Down Expand Up @@ -1736,11 +1701,6 @@ body > [data-popper-placement] {
height: 24px;
margin: -1px 0 0;
}

.status__content__spoiler-link {
line-height: 24px;
margin: -1px 0 0;
}
}

.media-gallery,
Expand Down Expand Up @@ -2288,17 +2248,6 @@ a.account__display-name {
.status__avatar {
opacity: 0.5;
}

a.status__content__spoiler-link {
background: $ui-base-lighter-color;
color: $inverted-text-color;

&:hover,
&:focus {
background: lighten($ui-base-lighter-color, 7%);
text-decoration: none;
}
}
}

.notification__report {
Expand Down Expand Up @@ -6310,15 +6259,6 @@ a.status-card {
color: $primary-text-color;
}

.status__content__spoiler-link {
color: $primary-text-color;
background: $ui-primary-color;

&:hover {
background: lighten($ui-primary-color, 8%);
}
}

.dialog-option {
align-items: center;
gap: 12px;
Expand Down
5 changes: 3 additions & 2 deletions app/views/auth/registrations/rules.html.haml
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,9 @@
%ol.rules-list
- @rules.each do |rule|
%li
.rules-list__text= rule.text
.rules-list__hint= rule.hint
%button{ type: 'button', aria: { expanded: 'false' } }
.rules-list__text= rule.text
.rules-list__hint= rule.hint

.stacked-actions
- accept_path = @invite_code.present? ? public_invite_url(invite_code: @invite_code, accept: @accept_token) : new_user_registration_path(accept: @accept_token)
Expand Down

0 comments on commit 986a367

Please sign in to comment.