Files
Masto/app/javascript/flavours/glitch/features/ui/components/column_link.jsx
T
Zoë Bijl d03bfe2ab8 [bugfix] further CSS fixes for Phosphor update
commit 242cfc4b06
Author: Zoë Bijl <code@moiety.me>
Date:   Tue Oct 21 00:22:46 2025 +0200

    [bugfix] tweak display name alignment

commit 23e5d9840f
Author: Zoë Bijl <code@moiety.me>
Date:   Tue Oct 21 00:00:59 2025 +0200

    [bugfix] improve display name alignment

commit 1664835c94
Author: Zoë Bijl <code@moiety.me>
Date:   Mon Oct 20 17:03:52 2025 +0200

    [feature] add text-decoration to usernames and hashtags

commit d4fdb18549
Author: Zoë Bijl <code@moiety.me>
Date:   Mon Oct 20 16:38:08 2025 +0200

    [bugfix] correct spacing in status__content__spoiler

commit c19307a115
Author: Zoë Bijl <code@moiety.me>
Date:   Mon Oct 20 16:28:30 2025 +0200

    [feature] remove giant logo in multi-column view

commit 51e2c6e1c3
Author: Zoë Bijl <code@moiety.me>
Date:   Mon Oct 20 16:24:52 2025 +0200

    [feature] add gts logo in the multi-column menu

commit edc83b0f54
Author: Zoë Bijl <code@moiety.me>
Date:   Mon Oct 20 16:23:26 2025 +0200

    [bugfix] fix width of fullwidth media gallery

commit 9923c1b6da
Author: Zoë Bijl <code@moiety.me>
Date:   Mon Oct 20 15:17:25 2025 +0200

    [chore] remove `fixedWith` from icons

commit 935d6b73ef
Author: Zoë Bijl <code@moiety.me>
Date:   Mon Oct 20 15:09:43 2025 +0200

    [chore] lint

commit 776f02bd5f
Author: Zoë Bijl <code@moiety.me>
Date:   Mon Oct 20 15:07:52 2025 +0200

    [bugfix] correctly align multiline column-header button

commit d988d35671
Author: Zoë Bijl <code@moiety.me>
Date:   Mon Oct 20 15:04:35 2025 +0200

    [feat] add new size variables

commit 34bcbb669d
Author: Zoë Bijl <code@moiety.me>
Date:   Sun Oct 19 23:47:20 2025 +0200

    [bugfix] re-enable hicolor privacy icons

commit 97f2cb8f69
Author: Zoë Bijl <code@moiety.me>
Date:   Sun Oct 19 23:26:16 2025 +0200

    [bugfix] correctly align “toot” buttons

commit 52bcd4b6d0
Author: Zoë Bijl <code@moiety.me>
Date:   Thu Oct 16 16:22:44 2025 +0200

    [bugfix] replace `--size` with global `--size-icon`

    BREAKING CHANGE: any user styles that overwrote `--size` in a `,gts-icon` class will need to be updated.

commit 9812a2611f
Author: Zoë Bijl <code@moiety.me>
Date:   Thu Oct 16 15:53:37 2025 +0200

    [bugfix] further tweaks to `.poll__footer` alignment

commit 798d6fbf79
Author: Zoë Bijl <code@moiety.me>
Date:   Thu Oct 16 15:38:45 2025 +0200

    [bugfix] correctly align .poll__footer
2025-10-21 00:31:41 +02:00

58 lines
1.8 KiB
React

import PropTypes from "prop-types";
import classNames from "classnames";
import { NavLink } from "react-router-dom";
import { Icon } from "flavours/glitch/components/icon";
const ColumnLink = ({ icon, text, to, onClick, href, method, badge, transparent, ...other }) => {
const className = classNames("column-link", { "column-link--transparent": transparent });
const badgeElement = typeof badge !== "undefined" ? <span className='column-link__badge'>{badge}</span> : null;
const iconElement = typeof icon === "string" ? <Icon id={icon} className='column-link__icon' /> : icon;
if (href) {
return (
<a href={href} className={className} data-method={method} title={text} {...other}>
{iconElement}
<span>{text}</span>
{badgeElement}
</a>
);
} else if (to) {
return (
<NavLink to={to} className={className} title={text} {...other}>
{iconElement}
<span>{text}</span>
{badgeElement}
</NavLink>
);
} else {
const handleOnClick = (e) => {
e.preventDefault();
e.stopPropagation();
return onClick(e);
};
return (
// eslint-disable-next-line jsx-a11y/anchor-is-valid -- intentional to have the same look and feel as other menu items
<a href='#' onClick={onClick && handleOnClick} className={className} title={text} {...other} tabIndex={0}>
{iconElement}
<span>{text}</span>
{badgeElement}
</a>
);
}
};
ColumnLink.propTypes = {
icon: PropTypes.oneOfType([PropTypes.string, PropTypes.node]).isRequired,
text: PropTypes.string.isRequired,
to: PropTypes.string,
onClick: PropTypes.func,
href: PropTypes.string,
method: PropTypes.string,
badge: PropTypes.node,
transparent: PropTypes.bool,
};
export default ColumnLink;