mirror of
https://github.com/LemmyNet/joinlemmy-site.git
synced 2024-11-26 06:11:21 +00:00
Adding third party tools.
This commit is contained in:
parent
e6e5257c3e
commit
f85a7cdcbd
2 changed files with 51 additions and 7 deletions
|
@ -1,4 +1,4 @@
|
||||||
export interface ApiLibrary {
|
export interface ToolDetails {
|
||||||
name: string;
|
name: string;
|
||||||
link: string;
|
link: string;
|
||||||
description: string;
|
description: string;
|
||||||
|
@ -33,7 +33,7 @@ export interface AppLink {
|
||||||
icon: string;
|
icon: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const API_LIBRARIES: ApiLibrary[] = [
|
export const API_LIBRARIES: ToolDetails[] = [
|
||||||
{
|
{
|
||||||
name: "lemmy-js-client",
|
name: "lemmy-js-client",
|
||||||
link: "https://github.com/LemmyNet/lemmy-js-client",
|
link: "https://github.com/LemmyNet/lemmy-js-client",
|
||||||
|
@ -67,6 +67,37 @@ export const API_LIBRARIES: ApiLibrary[] = [
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
export const THIRD_PARTY_TOOLS: ToolDetails[] = [
|
||||||
|
{
|
||||||
|
name: "lemmy-bot",
|
||||||
|
link: "https://github.com/SleeplessOne1917/lemmy-bot",
|
||||||
|
description: "A bot library for Lemmy, the fediverse link aggregator.",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "lemmy-bouncer",
|
||||||
|
link: "https://github.com/SleeplessOne1917/lemmy-bouncer",
|
||||||
|
description:
|
||||||
|
"Lemmy automod bot to prevent unvetted users from posting or commenting in a community.",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Fediseer",
|
||||||
|
link: "https://github.com/Fediseer/fediseer",
|
||||||
|
description:
|
||||||
|
"This service provides an REST API which can be used to retrieve various information about Fediverse instances, particularly focused on detecting and countering bad actors.",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "LemmyAutomod",
|
||||||
|
link: "https://github.com/RikudouSage/LemmyAutomod",
|
||||||
|
description:
|
||||||
|
"LemmyAutomod is a tool for Lemmy that allows instance admins to set rules that will take action in certain scenarios.",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "threativore",
|
||||||
|
link: "https://github.com/db0/threativore",
|
||||||
|
description: "A Thrediverse bot fight against spam",
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
const VOYAGER: AppDetails = {
|
const VOYAGER: AppDetails = {
|
||||||
name: "Voyager",
|
name: "Voyager",
|
||||||
description: "A Lemmy Client for iOS, Android and the web",
|
description: "A Lemmy Client for iOS, Android and the web",
|
||||||
|
|
|
@ -6,10 +6,12 @@ import { BottomSpacer, SELECT_CLASSES, TEXT_GRADIENT } from "./common";
|
||||||
import {
|
import {
|
||||||
API_LIBRARIES,
|
API_LIBRARIES,
|
||||||
APP_LIST,
|
APP_LIST,
|
||||||
|
ToolDetails,
|
||||||
AppDetails,
|
AppDetails,
|
||||||
AppLink,
|
AppLink,
|
||||||
Platform,
|
Platform,
|
||||||
SourceType,
|
SourceType,
|
||||||
|
THIRD_PARTY_TOOLS,
|
||||||
} from "./app-definitions";
|
} from "./app-definitions";
|
||||||
import { Icon } from "./icon";
|
import { Icon } from "./icon";
|
||||||
import { I18nKeys } from "i18next";
|
import { I18nKeys } from "i18next";
|
||||||
|
@ -95,13 +97,18 @@ const AppGrid = ({ apps }: AppGridProps) => (
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
||||||
const ApiLibrariesBlock = () => (
|
interface ToolsBlockProps {
|
||||||
|
title: string;
|
||||||
|
items: ToolDetails[];
|
||||||
|
}
|
||||||
|
|
||||||
|
const ToolsBlock = ({ title, items }: ToolsBlockProps) => (
|
||||||
<div>
|
<div>
|
||||||
<AppTitle title={i18n.t("api_libraries")} />
|
<AppTitle title={title} />
|
||||||
<div className="card card-bordered bg-neutral-900 shadow-xl md:w-1/2">
|
<div className="card card-bordered bg-neutral-900 shadow-xl">
|
||||||
<div className="card-body">
|
<div className="card-body">
|
||||||
<ul>
|
<ul>
|
||||||
{API_LIBRARIES.map(a => (
|
{items.map(a => (
|
||||||
<li>
|
<li>
|
||||||
<span className={`${TEXT_GRADIENT} mr-2`}>●</span>
|
<span className={`${TEXT_GRADIENT} mr-2`}>●</span>
|
||||||
<span>
|
<span>
|
||||||
|
@ -163,7 +170,13 @@ export class Apps extends Component<any, State> {
|
||||||
<TitleBlock />
|
<TitleBlock />
|
||||||
{this.filterAndTitleBlock()}
|
{this.filterAndTitleBlock()}
|
||||||
<AppGrid apps={this.state.apps} />
|
<AppGrid apps={this.state.apps} />
|
||||||
<ApiLibrariesBlock />
|
<div className="grid md:grid-cols-2 grid-cols-1 gap-4 mb-16">
|
||||||
|
<ToolsBlock title={i18n.t("api_libraries")} items={API_LIBRARIES} />
|
||||||
|
<ToolsBlock
|
||||||
|
title={i18n.t("third_party_tools")}
|
||||||
|
items={THIRD_PARTY_TOOLS}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
<BottomSpacer />
|
<BottomSpacer />
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
Loading…
Reference in a new issue