diff --git a/components/reps/GridRep/index.module.scss b/components/reps/GridRep/index.module.scss
index 86555e34..e3680ac6 100644
--- a/components/reps/GridRep/index.module.scss
+++ b/components/reps/GridRep/index.module.scss
@@ -241,6 +241,18 @@
gap: calc($unit / 2);
}
+ .icon {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: $unit * 2.5;
+ height: $unit * 2.5;
+
+ svg {
+ fill: var(--text-tertiary);
+ }
+ }
+
button svg {
width: 14px;
height: 14px;
diff --git a/components/reps/GridRep/index.tsx b/components/reps/GridRep/index.tsx
index 7f27892c..3c364e5e 100644
--- a/components/reps/GridRep/index.tsx
+++ b/components/reps/GridRep/index.tsx
@@ -10,8 +10,11 @@ import { accountState } from '~utils/accountState'
import { formatTimeAgo } from '~utils/timeAgo'
import Button from '~components/common/Button'
+import Tooltip from '~components/common/Tooltip'
import SaveIcon from '~public/icons/Save.svg'
+import PrivateIcon from '~public/icons/Private.svg'
+import UnlistedIcon from '~public/icons/Unlisted.svg'
import ShieldIcon from '~public/icons/Shield.svg'
import styles from './index.module.scss'
@@ -472,6 +475,48 @@ const GridRep = ({ party, loading, onClick, onSave }: Props) => {
)
+ const favoriteButton = (
+
+ }
+ active={party.favorited}
+ bound={true}
+ size="small"
+ onClick={sendSaveData}
+ />
+
+ )
+
+ function buttonArea() {
+ if (
+ account.authorized &&
+ ((party.user && account.user && account.user.id !== party.user.id) ||
+ !party.user)
+ ) {
+ return favoriteButton
+ } else if (party.visibility === 2) {
+ return (
+