Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
T
to
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
matrix
to
Commits
6e7a1198
Commit
6e7a1198
authored
4 years ago
by
Jorik Schellekens
Browse files
Options
Downloads
Patches
Plain Diff
Add inviting client tile
parent
dd8aa3d0
No related branches found
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
src/components/InvitingClientTile.stories.tsx
+23
-0
23 additions, 0 deletions
src/components/InvitingClientTile.stories.tsx
src/components/InvitingClientTile.tsx
+58
-0
58 additions, 0 deletions
src/components/InvitingClientTile.tsx
src/pages/LinkRouter.tsx
+17
-2
17 additions, 2 deletions
src/pages/LinkRouter.tsx
with
98 additions
and
2 deletions
src/components/InvitingClientTile.stories.tsx
0 → 100644
+
23
−
0
View file @
6e7a1198
/*
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
ClientTile
from
'
./InvitingClientTile
'
;
export
default
{
title
:
'
ClientTile
'
};
export
const
Element
=
<
ClientTile
clientName
=
{
'
element.io
'
}
/>;
This diff is collapsed.
Click to expand it.
src/components/InvitingClientTile.tsx
0 → 100644
+
58
−
0
View file @
6e7a1198
/*
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
Tile
from
'
./Tile
'
;
import
{
clientMap
}
from
'
../clients
'
;
import
'
./MatrixTile.scss
'
;
interface
IProps
{
clientName
:
string
;
}
const
InvitingClientTile
:
React
.
FC
<
IProps
>
=
({
clientName
}:
IProps
)
=>
{
const
client
=
clientMap
[
clientName
];
if
(
!
client
)
{
return
(
<
Tile
className
=
"matrixTile"
>
{
/* TODO: add gh link */
}
<
p
>
The client that created this link "
{
clientName
}
" is not a
recognised client. If this is a mistake and you'd like a
nice advertisement for it here please
{
'
'
}
<
a
href
=
"https://github.com/matrix-org/matrix.to"
>
open a pr
</
a
>
.
</
p
>
</
Tile
>
);
}
return
(
<
Tile
className
=
"matrixTile"
>
<
img
src
=
{
client
.
logo
}
alt
=
{
client
.
name
}
/>
<
h2
>
Invite created with
<
a
href
=
{
client
.
homepage
}
>
{
client
.
name
}
</
a
>
</
h2
>
<
div
>
{
client
.
description
}
</
div
>
</
Tile
>
);
};
export
default
InvitingClientTile
;
This diff is collapsed.
Click to expand it.
src/pages/LinkRouter.tsx
+
17
−
2
View file @
6e7a1198
...
@@ -18,6 +18,7 @@ import React from 'react';
...
@@ -18,6 +18,7 @@ import React from 'react';
import
Tile
from
'
../components/Tile
'
;
import
Tile
from
'
../components/Tile
'
;
import
LinkPreview
from
'
../components/LinkPreview
'
;
import
LinkPreview
from
'
../components/LinkPreview
'
;
import
InvitingClientTile
from
'
../components/InvitingClientTile
'
;
import
{
parseHash
}
from
'
../parser/parser
'
;
import
{
parseHash
}
from
'
../parser/parser
'
;
import
{
LinkKind
}
from
'
../parser/types
'
;
import
{
LinkKind
}
from
'
../parser/types
'
;
...
@@ -28,9 +29,9 @@ interface IProps {
...
@@ -28,9 +29,9 @@ interface IProps {
const
LinkRouter
:
React
.
FC
<
IProps
>
=
({
link
}:
IProps
)
=>
{
const
LinkRouter
:
React
.
FC
<
IProps
>
=
({
link
}:
IProps
)
=>
{
// our room id's will be stored in the hash
// our room id's will be stored in the hash
const
parsedLink
=
parseHash
(
link
);
const
parsedLink
=
parseHash
(
link
);
console
.
log
({
link
});
let
feedback
:
JSX
.
Element
;
let
feedback
:
JSX
.
Element
;
let
client
:
JSX
.
Element
=
<></>;
switch
(
parsedLink
.
kind
)
{
switch
(
parsedLink
.
kind
)
{
case
LinkKind
.
ParseFailed
:
case
LinkKind
.
ParseFailed
:
feedback
=
(
feedback
=
(
...
@@ -41,7 +42,21 @@ const LinkRouter: React.FC<IProps> = ({ link }: IProps) => {
...
@@ -41,7 +42,21 @@ const LinkRouter: React.FC<IProps> = ({ link }: IProps) => {
);
);
break
;
break
;
default
:
default
:
feedback
=
<
LinkPreview
link
=
{
parsedLink
}
/>;
if
(
parsedLink
.
arguments
.
client
)
{
client
=
(
<
InvitingClientTile
clientName
=
{
parsedLink
.
arguments
.
client
}
/>
);
}
feedback
=
(
<>
<
LinkPreview
link
=
{
parsedLink
}
/>
<
hr
/>
{
client
}
</>
);
}
}
return
feedback
;
return
feedback
;
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment