@@ -135,7 +156,11 @@ export function ModlogItem({ item }: ModLogItemProps) {
@@ -145,7 +170,8 @@ export function ModlogItem({ item }: ModLogItemProps) {
{by &&
}
{expires && (
)}
diff --git a/src/features/moderation/logs/ModlogItemMoreActions.tsx b/src/features/moderation/logs/ModlogItemMoreActions.tsx
index 1fca6be201..fe56bef764 100644
--- a/src/features/moderation/logs/ModlogItemMoreActions.tsx
+++ b/src/features/moderation/logs/ModlogItemMoreActions.tsx
@@ -5,6 +5,7 @@ import {
peopleOutline,
personOutline,
} from "ionicons/icons";
+import { useCallback, useImperativeHandle } from "react";
import { getHandle } from "#/helpers/lemmy";
import useAppNavigation from "#/helpers/useAppNavigation";
@@ -17,11 +18,17 @@ import styles from "./ModlogItemMoreActions.module.css";
interface ModlogItemMoreActions {
item: ModlogItemType;
role: ModeratorRole;
+ ref: React.RefObject
;
+}
+
+export interface ModlogItemMoreActionsHandle {
+ present: () => void;
}
export default function ModlogItemMoreActions({
item,
role,
+ ref,
}: ModlogItemMoreActions) {
const { navigateToCommunity, navigateToUser } = useAppNavigation();
const [presentActionSheet] = useIonActionSheet();
@@ -39,7 +46,7 @@ export default function ModlogItemMoreActions({
if ("admin" in item) return item.admin;
})();
- function presentMoreActions() {
+ const present = useCallback(() => {
presentActionSheet({
cssClass: "left-align-buttons",
buttons: compact([
@@ -77,7 +84,23 @@ export default function ModlogItemMoreActions({
},
]),
});
- }
+ }, [
+ community,
+ moderator,
+ navigateToCommunity,
+ navigateToUser,
+ person,
+ presentActionSheet,
+ role,
+ ]);
+
+ useImperativeHandle(
+ ref,
+ () => ({
+ present,
+ }),
+ [present],
+ );
return (
diff --git a/src/features/user/Scores.tsx b/src/features/user/Scores.tsx
index af94359c44..2b9c309ac6 100644
--- a/src/features/user/Scores.tsx
+++ b/src/features/user/Scores.tsx
@@ -1,7 +1,7 @@
import { useIonAlert } from "@ionic/react";
import { PersonAggregates } from "lemmy-js-client";
-import Ago, { formatRelative } from "#/features/labels/Ago";
+import Ago, { formatRelativeToNow } from "#/features/labels/Ago";
import { formatNumber } from "#/helpers/number";
import styles from "./Scores.module.css";
@@ -66,7 +66,7 @@ export default function Scores({ aggregates, accountCreated }: ScoreProps) {
className={styles.score}
onClick={() => {
present({
- header: `Account is ${formatRelative(creationDate, "verbose")} old`,
+ header: `Account is ${formatRelativeToNow(creationDate, "verbose")} old`,
message: `Created on ${creationDate.toDateString()} at ${creationDate.toLocaleTimeString(undefined, { hour: "2-digit", minute: "2-digit" })}`,
buttons: [{ text: "OK" }],
});