Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions apps/activitypub/.eslintrc.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ module.exports = {
'no-shadow': 'off',
'@typescript-eslint/no-shadow': 'error',

// Enforce kebab-case (lowercase with hyphens) for all filenames
'ghost/filenames/match-regex': ['error', '^[a-z0-9.-]+$', false],

// sort multiple import lines into alphabetical groups
'ghost/sort-imports-es6-autofix/sort-imports-es6': ['error', {
memberSyntaxSortOrder: ['none', 'all', 'single', 'multiple']
Expand Down
2 changes: 1 addition & 1 deletion apps/activitypub/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@tryghost/activitypub",
"version": "3.0.4",
"version": "3.0.5",
"license": "MIT",
"repository": {
"type": "git",
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import NewNoteModal from '@components/modals/NewNoteModal';
import NewNoteModal from '@components/modals/new-note-modal';
import React, {useEffect, useRef, useState} from 'react';
import {ActorProperties, ObjectProperties} from '@tryghost/admin-x-framework/api/activitypub';
import {AnimatedNumber, Button, LucideIcon, formatNumber} from '@tryghost/shade';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import FeedItemMenu from './FeedItemMenu';
import FeedItemMenu from './feed-item-menu';
import React, {useEffect, useRef, useState} from 'react';
import {ActorProperties, ObjectProperties} from '@tryghost/admin-x-framework/api/activitypub';
import {Button, H4, LucideIcon, Skeleton} from '@tryghost/shade';
import {toast} from 'sonner';

import APAvatar from '../global/APAvatar';
import ImageLightbox, {useLightboxImages} from '../global/ImageLightbox';
import ProfilePreviewHoverCard from '../global/ProfilePreviewHoverCard';
import APAvatar from '../global/ap-avatar';
import ImageLightbox, {useLightboxImages} from '../global/image-lightbox';
import ProfilePreviewHoverCard from '../global/profile-preview-hover-card';

import FeedItemStats from './FeedItemStats';
import FeedItemStats from './feed-item-stats';
import clsx from 'clsx';
import getReadingTime from '../../utils/get-reading-time';
import getUsername from '../../utils/get-username';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React, {HTMLProps, useState} from 'react';

import APAvatar from './APAvatar';
import NewNoteModal from '@components/modals/NewNoteModal';
import APAvatar from './ap-avatar';
import NewNoteModal from '@components/modals/new-note-modal';
import getUsername from '../../utils/get-username';
import {ActorProperties, ObjectProperties} from '@tryghost/admin-x-framework/api/activitypub';
import {useUserDataForUser} from '@hooks/use-activity-pub-queries';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React, {useCallback, useEffect, useState} from 'react';
import {Button, Dialog, DialogClose, DialogContent, LucideIcon} from '@tryghost/shade';
import {ObjectProperties} from '@tryghost/admin-x-framework/api/activitypub';
import {getAttachment} from '@components/feed/FeedItem';
import {getAttachment} from '@components/feed/feed-item';

export interface LightboxImage {
url: string;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import FollowButton from './FollowButton';
import FollowButton from './follow-button';
import React, {useEffect, useState} from 'react';
import getUsername from '../../utils/get-username';
import {Account} from '@src/api/activitypub';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import APAvatar from './APAvatar';
import ActivityItem from '../activities/ActivityItem';
import FollowButton from './FollowButton';
import ProfilePreviewHoverCard from '@components/global/ProfilePreviewHoverCard';
import APAvatar from './ap-avatar';
import ActivityItem from '../activities/activity-item';
import FollowButton from './follow-button';
import ProfilePreviewHoverCard from '@components/global/profile-preview-hover-card';
import React from 'react';
import {type Account} from '../../api/activitypub';
import {Skeleton} from '@tryghost/shade';
Expand Down
1 change: 0 additions & 1 deletion apps/activitypub/src/components/layout/Error/index.ts

This file was deleted.

1 change: 0 additions & 1 deletion apps/activitypub/src/components/layout/Header/index.tsx

This file was deleted.

This file was deleted.

1 change: 0 additions & 1 deletion apps/activitypub/src/components/layout/Sidebar/index.tsx

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import Layout from '@components/layout/Layout';
import Layout from '@components/layout/layout';
import {Button, H4, LucideIcon} from '@tryghost/shade';
import {EmptyViewIcon, EmptyViewIndicator} from '@src/components/global/EmptyViewIndicator';
import {EmptyViewIcon, EmptyViewIndicator} from '@src/components/global/empty-view-indicator';
import {useNavigate} from '@tryghost/admin-x-framework';
import {useRouteError} from 'react-router';

Expand Down
1 change: 1 addition & 0 deletions apps/activitypub/src/components/layout/error/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export {default} from './error';
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import React from 'react';
import {Button, H1, LucideIcon} from '@tryghost/shade';
import {useNavigationStack, useRouteHasParams} from '@tryghost/admin-x-framework';

import BackButton from '@src/components/global/BackButton';
import BackButton from '@src/components/global/back-button';
import useActiveRoute from '@src/hooks/use-active-route';
import {useCurrentPage} from '@src/hooks/use-current-page';

Expand Down
1 change: 1 addition & 0 deletions apps/activitypub/src/components/layout/header/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export {default} from './header';
2 changes: 1 addition & 1 deletion apps/activitypub/src/components/layout/index.tsx
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export {default} from './Layout';
export {default} from './layout';
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import Header from './Header';
import NewNoteModal from '@components/modals/NewNoteModal';
import Onboarding, {useOnboardingStatus} from './Onboarding';
import Header from './header';
import NewNoteModal from '@components/modals/new-note-modal';
import Onboarding, {useOnboardingStatus} from './onboarding';
import React, {useRef, useState} from 'react';
import Sidebar from './Sidebar';
import Sidebar from './sidebar';
import {Navigate, ScrollRestoration} from '@tryghost/admin-x-framework';
import {useAppBasePath} from '@src/hooks/use-app-base-path';
import {useCurrentPage} from '@src/hooks/use-current-page';
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export {default, useOnboardingStatus} from './onboarding';
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import APAvatar from '@src/components/global/APAvatar';
import APAvatar from '@src/components/global/ap-avatar';
import React, {useState} from 'react';
import apNodes from '@assets/images/onboarding/ap-nodes.png';
import apNodesDark from '@assets/images/onboarding/ap-nodes-dark.png';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import Header from './components/Header';
import Header from './components/header';
import React, {ReactNode} from 'react';
import apDashedLines from '@assets/images/onboarding/ap-dashed-lines.png';
import apDashedLinesDark from '@assets/images/onboarding/ap-dashed-lines-dark.png';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import Header from './components/Header';
import Header from './components/header';
import React, {ReactNode, useEffect, useState} from 'react';
import caseyAvatar from '@assets/images/onboarding/avatar-casey.png';
import creatorScienceAvatar from '@assets/images/onboarding/avatar-creator-science.png';
Expand All @@ -18,7 +18,7 @@ import tangleCover from '@assets/images/onboarding/cover-tangle.png';
import {Avatar, AvatarFallback, AvatarImage, Button, H1, LucideIcon, Separator} from '@tryghost/shade';
import {useAccountForUser, useTopicsForUser} from '@src/hooks/use-activity-pub-queries';
import {useNavigateWithBasePath} from '@src/hooks/use-navigate-with-base-path';
import {useOnboardingStatus} from './Onboarding';
import {useOnboardingStatus} from './onboarding';

const MenuItem: React.FC<{
children?: ReactNode,
Expand Down
1 change: 1 addition & 0 deletions apps/activitypub/src/components/layout/sidebar/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export {default} from './sidebar';
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import * as React from 'react';
import APAvatar from '@components/global/APAvatar';
import ActivityItem from '@components/activities/ActivityItem';
import ProfilePreviewHoverCard from '@components/global/ProfilePreviewHoverCard';
import APAvatar from '@components/global/ap-avatar';
import ActivityItem from '@components/activities/activity-item';
import ProfilePreviewHoverCard from '@components/global/profile-preview-hover-card';
import {Button, H4, LucideIcon, Skeleton} from '@tryghost/shade';
import {handleProfileClick} from '@utils/handle-profile-click';
import {useNavigateWithBasePath} from '@src/hooks/use-navigate-with-base-path';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import * as React from 'react';
import FeedbackBox from './FeedbackBox';
import NewNoteModal from '@src/components/modals/NewNoteModal';
import Recommendations from './Recommendations';
import Search from '@src/components/modals/Search';
import SearchInput from '../Header/SearchInput';
import SidebarMenuLink from './SidebarMenuLink';
import FeedbackBox from './feedback-box';
import NewNoteModal from '@src/components/modals/new-note-modal';
import Recommendations from './recommendations';
import Search from '@src/components/modals/search';
import SearchInput from '../header/search-input';
import SidebarMenuLink from './sidebar-menu-link';
import {Button, Dialog, DialogContent, DialogTrigger, LucideIcon} from '@tryghost/shade';
import {useAppBasePath} from '@src/hooks/use-app-base-path';
import {useCurrentUser} from '@tryghost/admin-x-framework/api/current-user';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as FormPrimitive from '@radix-ui/react-form';
import APAvatar from '@components/global/APAvatar';
import FeedItem from '@components/feed/FeedItem';
import APAvatar from '@components/global/ap-avatar';
import FeedItem from '@components/feed/feed-item';
import getUsername from '@utils/get-username';
import {ActorProperties, ObjectProperties} from '@tryghost/admin-x-framework/api/activitypub';
import {Button, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, Input, LoadingIndicator, LucideIcon, Skeleton} from '@tryghost/shade';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import APAvatar from '@components/global/APAvatar';
import ActivityItem from '@components/activities/ActivityItem';
import FollowButton from '@components/global/FollowButton';
import ProfilePreviewHoverCard from '../global/ProfilePreviewHoverCard';
import APAvatar from '@components/global/ap-avatar';
import ActivityItem from '@components/activities/activity-item';
import FollowButton from '@components/global/follow-button';
import ProfilePreviewHoverCard from '../global/profile-preview-hover-card';
import React, {useEffect, useMemo, useRef, useState} from 'react';
import {ActorProperties} from '@tryghost/admin-x-framework/api/activitypub';
import {Button, H4, Input, LoadingIndicator, LucideIcon, NoValueLabel, NoValueLabelIcon} from '@tryghost/shade';
import {SuggestedProfiles} from '../global/SuggestedProfiles';
import {SuggestedProfiles} from '../global/suggested-profiles';
import {useAccountForUser, useSearchForUser, useSuggestedProfilesForUser, useTopicsForUser} from '@hooks/use-activity-pub-queries';
import {useDebounce} from 'use-debounce';
import {useNavigateWithBasePath} from '@src/hooks/use-navigate-with-base-path';
Expand Down
2 changes: 1 addition & 1 deletion apps/activitypub/src/index.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import './styles/index.css';
import App from './App';
import App from './app';

export {
App as AdminXApp
Expand Down
32 changes: 16 additions & 16 deletions apps/activitypub/src/routes.tsx
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
import BlueskySharing from '@views/Preferences/components/BlueskySharing';
import Error from '@components/layout/Error';
import Explore from '@views/Explore';
import Feed from './views/Feed/Feed';
import Inbox from '@views/Inbox';
import Moderation from '@views/Preferences/components/Moderation';
import Note from './views/Feed/Note';
import Notifications from '@views/Notifications';
import Onboarding from '@components/layout/Onboarding';
import OnboardingStep1 from '@components/layout/Onboarding/Step1';
import OnboardingStep2 from '@components/layout/Onboarding/Step2';
import OnboardingStep3 from '@components/layout/Onboarding/Step3';
import Preferences from '@views/Preferences';
import Profile from '@views/Profile';
import AppError from '@components/layout/error';
import BlueskySharing from '@views/preferences/components/bluesky-sharing';
import Explore from '@views/explore';
import Feed from './views/feed/feed';
import Inbox from '@views/inbox';
import Moderation from '@views/preferences/components/moderation';
import Note from './views/feed/note';
import Notifications from '@views/notifications';
import Onboarding from '@components/layout/onboarding';
import OnboardingStep1 from '@components/layout/onboarding/step-1';
import OnboardingStep2 from '@components/layout/onboarding/step-2';
import OnboardingStep3 from '@components/layout/onboarding/step-3';
import Preferences from '@views/preferences';
import Profile from '@views/profile';
import {Navigate, Outlet, RouteObject} from '@tryghost/admin-x-framework';

const basePath = import.meta.env.VITE_TEST ? '' : 'activitypub';
Expand All @@ -27,7 +27,7 @@ export const routes: CustomRouteObject[] = [
// Root route that defines the app's base path
path: basePath,
element: <Outlet />,
errorElement: <Error />, // This will catch all errors in child routes
errorElement: <AppError />, // This will catch all errors in child routes
handle: 'activitypub-basepath',
children: [
{
Expand Down Expand Up @@ -147,7 +147,7 @@ export const routes: CustomRouteObject[] = [
},
{
path: '*',
element: <Error />
element: <AppError />
}
]
}
Expand Down
2 changes: 1 addition & 1 deletion apps/activitypub/src/standalone.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import './styles/index.css';
import App from './App.tsx';
import App from './app.tsx';
import renderStandaloneApp from '@tryghost/admin-x-framework/test/render';

renderStandaloneApp(App, {});
1 change: 0 additions & 1 deletion apps/activitypub/src/views/Explore/index.tsx

This file was deleted.

1 change: 0 additions & 1 deletion apps/activitypub/src/views/Inbox/index.tsx

This file was deleted.

1 change: 0 additions & 1 deletion apps/activitypub/src/views/Notifications/index.tsx

This file was deleted.

1 change: 0 additions & 1 deletion apps/activitypub/src/views/Preferences/index.tsx

This file was deleted.

1 change: 0 additions & 1 deletion apps/activitypub/src/views/Profile/index.tsx

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import APAvatar from '@src/components/global/APAvatar';
import FollowButton from '@src/components/global/FollowButton';
import APAvatar from '@src/components/global/ap-avatar';
import FollowButton from '@src/components/global/follow-button';
import Layout from '@components/layout';
import ProfilePreviewHoverCard from '@components/global/ProfilePreviewHoverCard';
import ProfilePreviewHoverCard from '@components/global/profile-preview-hover-card';
import React, {useEffect} from 'react';
import TopicFilter, {type Topic} from '@src/components/TopicFilter';
import TopicFilter, {type Topic} from '@src/components/topic-filter';
import {type Account, type ExploreAccount} from '@src/api/activitypub';
import {Button, H4, LoadingIndicator, LucideIcon, Skeleton} from '@tryghost/shade';
import {openLinksInNewTab, stripHtml} from '@src/utils/content-formatters';
import {useAccountForUser, useExploreProfilesForUserByTopic} from '@hooks/use-activity-pub-queries';
import {useNavigateWithBasePath} from '@src/hooks/use-navigate-with-base-path';
import {useOnboardingStatus} from '@src/components/layout/Onboarding';
import {useOnboardingStatus} from '@src/components/layout/onboarding';
import {useParams} from '@tryghost/admin-x-framework';

interface ExploreProfileProps {
Expand Down
1 change: 1 addition & 0 deletions apps/activitypub/src/views/explore/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export {default} from './explore';
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import APAvatar from '@src/components/global/APAvatar';
import NewNoteModal from '@src/components/modals/NewNoteModal';
import APAvatar from '@src/components/global/ap-avatar';
import NewNoteModal from '@src/components/modals/new-note-modal';
import {ActorProperties} from '@tryghost/admin-x-framework/api/activitypub';

const FeedInput: React.FC<{user?: ActorProperties}> = ({user}) => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import FeedInput from './FeedInput';
import FeedItem from '@src/components/feed/FeedItem';
import FeedInput from './feed-input';
import FeedItem from '@src/components/feed/feed-item';
import Layout from '@src/components/layout';
import NewNoteModal from '@src/components/modals/NewNoteModal';
import SuggestedProfiles from './SuggestedProfiles';
import NewNoteModal from '@src/components/modals/new-note-modal';
import SuggestedProfiles from './suggested-profiles';
import {Activity} from '@src/api/activitypub';
import {ActorProperties} from '@tryghost/admin-x-framework/api/activitypub';
import {Button, LoadingIndicator, LucideIcon, Separator} from '@tryghost/shade';
import {EmptyViewIcon, EmptyViewIndicator} from '@src/components/global/EmptyViewIndicator';
import {EmptyViewIcon, EmptyViewIndicator} from '@src/components/global/empty-view-indicator';
import {isPendingActivity} from '@src/utils/pending-activity';
import {useEffect, useRef} from 'react';
import {useNavigateWithBasePath} from '@src/hooks/use-navigate-with-base-path';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import APAvatar from '@src/components/global/APAvatar';
import FollowButton from '@src/components/global/FollowButton';
import ProfilePreviewHoverCard from '@components/global/ProfilePreviewHoverCard';
import APAvatar from '@src/components/global/ap-avatar';
import FollowButton from '@src/components/global/follow-button';
import ProfilePreviewHoverCard from '@components/global/profile-preview-hover-card';
import {Account} from '@src/api/activitypub';
import {Button, H4, LucideIcon, Separator, Skeleton} from '@tryghost/shade';
import {useEffect, useRef, useState} from 'react';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import Error from '@components/layout/Error';
import FeedList from './components/FeedList';
import AppError from '@components/layout/error';
import FeedList from './components/feed-list';
import React from 'react';
import {isApiError} from '@src/api/activitypub';
import {
Expand All @@ -16,7 +16,7 @@ const Feed: React.FC = () => {
const {data: user} = useUserDataForUser('index');

if (error && isApiError(error)) {
return <Error errorCode={error.code} statusCode={error.statusCode}/>;
return <AppError errorCode={error.code} statusCode={error.statusCode}/>;
}

return <FeedList
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import APAvatar from '@src/components/global/APAvatar';
import APReplyBox from '@src/components/global/APReplyBox';
import DeletedFeedItem from '@src/components/feed/DeletedFeedItem';
import FeedItem from '@components/feed/FeedItem';
import Layout from '@src/components/layout/Layout';
import ProfilePreviewHoverCard from '@components/global/ProfilePreviewHoverCard';
import APAvatar from '@src/components/global/ap-avatar';
import APReplyBox from '@src/components/global/ap-reply-box';
import DeletedFeedItem from '@src/components/feed/deleted-feed-item';
import FeedItem from '@components/feed/feed-item';
import Layout from '@src/components/layout/layout';
import ProfilePreviewHoverCard from '@components/global/profile-preview-hover-card';
import React, {useEffect, useRef, useState} from 'react';
import ShowRepliesButton from '@src/components/global/ShowRepliesButton';
import ShowRepliesButton from '@src/components/global/show-replies-button';
import getUsername from '@src/utils/get-username';
import {Activity} from '@tryghost/admin-x-framework/api/activitypub';
import {EmptyViewIcon, EmptyViewIndicator} from '@src/components/global/EmptyViewIndicator';
import {EmptyViewIcon, EmptyViewIndicator} from '@src/components/global/empty-view-indicator';
import {LoadingIndicator, LucideIcon, Skeleton} from '@tryghost/shade';
import {handleProfileClick} from '@src/utils/handle-profile-click';
import {isPendingActivity} from '@src/utils/pending-activity';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import FeedItem from '@src/components/feed/FeedItem';
import FeedItem from '@src/components/feed/feed-item';
import Layout from '@src/components/layout';
import Reader from './Reader';
import TopicFilter, {Topic} from '@src/components/TopicFilter';
import Reader from './reader';
import TopicFilter, {Topic} from '@src/components/topic-filter';
import {Activity} from '@src/api/activitypub';
import {Button, Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, EmptyIndicator, LoadingIndicator, LucideIcon, Separator} from '@tryghost/shade';
import {isPendingActivity} from '@src/utils/pending-activity';
Expand Down
Loading
Loading