add clients
This commit is contained in:
@@ -56,6 +56,7 @@ const Element: LinkedClient = {
|
||||
);
|
||||
}
|
||||
},
|
||||
linkSupport: () => true,
|
||||
};
|
||||
|
||||
export const ElementDevelop: LinkedClient = {
|
||||
@@ -90,5 +91,6 @@ export const ElementDevelop: LinkedClient = {
|
||||
);
|
||||
}
|
||||
},
|
||||
linkSupport: () => true,
|
||||
};
|
||||
export default Element;
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
/*
|
||||
Copyright 2020 The Matrix.org Foundation C.I.C.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
import React from 'react';
|
||||
|
||||
import { TextClient, Maturity, ClientKind, ClientId, Platform } from './types';
|
||||
|
||||
import { LinkKind } from '../parser/types';
|
||||
|
||||
import logo from '../imgs/fractal.png';
|
||||
|
||||
const Fractal: TextClient = {
|
||||
kind: ClientKind.TEXT_CLIENT,
|
||||
name: 'Fractal',
|
||||
logo: logo,
|
||||
author: 'Daniel Garcia Moreno',
|
||||
homepage: 'https://github.com/poljar/weechat-matrix',
|
||||
maturity: Maturity.BETA,
|
||||
experimental: false,
|
||||
platform: Platform.Desktop,
|
||||
clientId: ClientId.Fractal,
|
||||
toInviteString: (link) => {
|
||||
switch (link.kind) {
|
||||
case LinkKind.Alias:
|
||||
case LinkKind.RoomId:
|
||||
case LinkKind.UserId:
|
||||
return <span>Click the '+' button in the top right</span>;
|
||||
default:
|
||||
return <span>Weechat doesn't support this kind of link</span>;
|
||||
}
|
||||
},
|
||||
copyString: (link) => {
|
||||
switch (link.kind) {
|
||||
case LinkKind.Alias:
|
||||
case LinkKind.RoomId:
|
||||
case LinkKind.UserId:
|
||||
return `${link.identifier}`;
|
||||
default:
|
||||
return '';
|
||||
}
|
||||
},
|
||||
linkSupport: (link) => {
|
||||
switch (link.kind) {
|
||||
case LinkKind.Alias:
|
||||
case LinkKind.RoomId:
|
||||
case LinkKind.UserId:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
},
|
||||
|
||||
description: 'Command-line Matrix interface using Weechat',
|
||||
};
|
||||
|
||||
export default Fractal;
|
||||
@@ -0,0 +1,85 @@
|
||||
/*
|
||||
Copyright 2020 The Matrix.org Foundation C.I.C.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
import React from 'react';
|
||||
|
||||
import { TextClient, Maturity, ClientKind, ClientId, Platform } from './types';
|
||||
|
||||
import { LinkKind } from '../parser/types';
|
||||
|
||||
import logo from '../imgs/nheko.svg';
|
||||
|
||||
const Nheko: TextClient = {
|
||||
kind: ClientKind.TEXT_CLIENT,
|
||||
name: 'Nheko',
|
||||
logo: logo,
|
||||
author: 'mujx, red_sky, deepbluev7, Konstantinos Sideris',
|
||||
homepage: 'https://github.com/Nheko-Reborn/nheko',
|
||||
maturity: Maturity.BETA,
|
||||
experimental: false,
|
||||
platform: Platform.Desktop,
|
||||
clientId: ClientId.Nheko,
|
||||
toInviteString: (link) => {
|
||||
switch (link.kind) {
|
||||
case LinkKind.Alias:
|
||||
case LinkKind.RoomId:
|
||||
return (
|
||||
<span>
|
||||
Type{' '}
|
||||
<code>
|
||||
/join <b>{link.identifier}</b>
|
||||
</code>
|
||||
</span>
|
||||
);
|
||||
case LinkKind.UserId:
|
||||
return (
|
||||
<span>
|
||||
Type{' '}
|
||||
<code>
|
||||
/invite <b>{link.identifier}</b>
|
||||
</code>
|
||||
</span>
|
||||
);
|
||||
default:
|
||||
return <span>Nheko doesn't support this kind of link</span>;
|
||||
}
|
||||
},
|
||||
copyString: (link) => {
|
||||
switch (link.kind) {
|
||||
case LinkKind.Alias:
|
||||
case LinkKind.RoomId:
|
||||
return `/join ${link.identifier}`;
|
||||
case LinkKind.UserId:
|
||||
return `/invite ${link.identifier}`;
|
||||
default:
|
||||
return '';
|
||||
}
|
||||
},
|
||||
linkSupport: (link) => {
|
||||
switch (link.kind) {
|
||||
case LinkKind.Alias:
|
||||
case LinkKind.RoomId:
|
||||
case LinkKind.UserId:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
},
|
||||
description:
|
||||
'A native desktop app for Matrix that feels more like a mainstream chat app.',
|
||||
};
|
||||
|
||||
export default Nheko;
|
||||
@@ -68,6 +68,17 @@ const Weechat: TextClient = {
|
||||
return '';
|
||||
}
|
||||
},
|
||||
linkSupport: (link) => {
|
||||
switch (link.kind) {
|
||||
case LinkKind.Alias:
|
||||
case LinkKind.RoomId:
|
||||
case LinkKind.UserId:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
},
|
||||
|
||||
description: 'Command-line Matrix interface using Weechat',
|
||||
};
|
||||
|
||||
|
||||
@@ -18,11 +18,13 @@ import { Client } from './types';
|
||||
|
||||
import Element, { ElementDevelop } from './Element.io';
|
||||
import Weechat from './Weechat';
|
||||
import Nheko from './Nheko';
|
||||
import Fractal from './Fractal';
|
||||
|
||||
/*
|
||||
* All the supported clients of matrix.to
|
||||
*/
|
||||
const clients: Client[] = [Element, Weechat, ElementDevelop];
|
||||
const clients: Client[] = [Element, Weechat, Nheko, Fractal, ElementDevelop];
|
||||
|
||||
/*
|
||||
* A map from sharer string to client.
|
||||
@@ -33,6 +35,8 @@ export const clientMap: { [key: string]: Client } = {
|
||||
[Element.clientId]: Element,
|
||||
[Weechat.clientId]: Weechat,
|
||||
[ElementDevelop.clientId]: ElementDevelop,
|
||||
[Nheko.clientId]: Nheko,
|
||||
[Fractal.clientId]: Fractal,
|
||||
};
|
||||
|
||||
/*
|
||||
|
||||
@@ -49,6 +49,8 @@ export enum ClientId {
|
||||
Element = 'element.io',
|
||||
ElementDevelop = 'develop.element.io',
|
||||
WeeChat = 'weechat',
|
||||
Nheko = 'nheko',
|
||||
Fractal = 'fractal',
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -64,6 +66,7 @@ export interface ClientDescription {
|
||||
maturity: Maturity;
|
||||
clientId: ClientId;
|
||||
experimental: boolean;
|
||||
linkSupport: (link: SafeLink) => boolean;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user