Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Explore recommended and trending communities
This page consists of three components:
Feature | Description |
Recommended Community list | A visual list of communities with the highest member count. The communities in the list are those where you are not a member yet. |
Navigation to Community profile |
Feature | Description |
Top trending Community list | Visual list of communities with the highest number of members. It can be a combination of communities where you may or may not be a member of. |
Navigation to Community profile |
Select a community to go to its
Select a community to go to its .
Feature
Description
Category list
You can see categories sorted in alphabetical order. Clicking the < > navigation buttons will let you explore the entire categories list.
Navigation to Community list by category
Select a category to see all the communities listed under the selected category
To provide greater customization options, we have open-sourced our UIKit and deprecated the pacakged UIKit version previously available. For the best quality and access to the latest features, we strongly recommend integrating our UIKit with the open-source version. For more details Please refer to Web UIKit Installation Guide section.
At the core of your project, you will need to import and decorate your application with the UiKitProvider
.
AmityUIKit already includes our SDK. Don’t install AmitySDK separately if you have already installed the UIKit.
You can use the UIKit components with this code:
Check this sample code in our web sample application.
Our community group functionality within UIKit allows you to explore social features and see how they will look in your app.
Amity Web UIKit Installation Guide
To allow for more customization, we have now open sourced our UI Kits and deprecated the packaged UI Kit version that was previously available.
With open source, developers have more flexibility and greater customization options, allowing you to have complete control over the visual style. Open sourcing allows for more transparency and visibility, and enables contributions from a greater developer community in terms of good design, implementation, code improvement, and fixes, translating into a better product and development experience.
To ensure that you continue to receive the latest features and updates, we encourage you to migrate over to the open source version. This guide will help you:
If you’ve never used the packaged Web UI Kit before, you may skip this step and proceed to the next step.
If you’re migrating over to the open-source version, you’ll need to remove and unlink the packaged UI Kit from your project before installing the open source source code.
There are several ways for you to integrate the open-source Web UI Kit into your projects, depending on your workflow. We recommend installing from npm, however we’ve also included instructions to install via Git Submodule.
Clone or download source code from an open-source Github repository
After downloading the source code, navigate to the directory where the source code was installed:
Run npm i
to install package dependencies
Run npm build
Run npm link
Lastly, import (link) the UI Kit into your project by running the following command
Woohoo! All set! Now let’s try a sample code to get you started with our UI Kit:
Method 2: Installing via git submodule
First, create a new React project
Create a new repository using git init
inside your root directory
Select the path where you want to clone the submodule or use cd src
Add AmityUIKit open source into your git repository with git submodule command as shown below
Navigate to the directory where the source code was installed
Run npm i
to install package dependencies
Run npm run
build
Install and configure babel transcompiler, then create babel.config.js at the root of your project. Your project structure should be similar to the screenshot below:
Add “babelrcRoots” option into your babel.config.js file. If you installed the source code in a different path, replace “./src/ui-kit
” with the path where you installed the UI Kit.
Once you’ve installed and created the babel configuration, your configuration may look like this:
Next, go back to your project’s root directory and run the following commands:
cd node_modules/react
npm link
Then, go to the ui-kit folder and run npm link react
Finally, go back to the root directory of your project and run npm run start
If you receive warnings about “eslint” (which may happen to some versions of create-react-app if your project was created using this tool), please follow the steps below:
1) Inside ui-kit dir open package.json, move all eslint dependencies into "peerDependencies" field
2) Remove package-lock.json and run "npm i” again
3) Link react from root to ui-kit again
Woohoo! All set! Now let’s try a sample code to get you started with our UI Kit
You can modify the Web open source UI Kit to customize behaviors to fit your needs. To modify the code, simply copy and paste it into your local machine.
We recommend that you first fork the repository before starting any customization work, so that it will be easier to merge the code with the next version update that we provide from the main repository.
Reference on forking: https://docs.github.com/en/get-started/quickstart/fork-a-repo
To update to the latest version of the UI Kit, you can pull the latest commit of the git submodule.
Amity modules are ready-to-use — the only things left to do for our customers are integration and front-end. Going the extra mile, we've created a UI Kit with endless customizations.
Our Social UIKit for Amity Social Cloud is a development kit with a user interface to enable fast integration of standard Amity Social features into new or existing applications. Themes allow you to apply your style through colors and fonts.
We have now open sourced Amity UIKit so you will have complete control of the visual style of your Chat and Social application with endless customizations. Amity UIKit open source is now available in our Github repository.
To customize Amity UIKit open source, download the source code and apply the customizations in the forked source code. Once you fork our UIKit source code separately, you basically own the product so you are free to customize and build it for your specific use cases.
We recommend that you use Amity UIKit open source when:
The standard UIKit is not applicable to your use case .
You want to use an Amity Chat or Social SDK feature which is not yet supported in our standard UIKit.
Please note that we will extend only a limited support once you customize our UIKit open source since we won’t be able to fully know your code once you fork it.
We are using the Amity UIKit open source wiki for any documentation related to Amity UIKit open source.
For our standard UIKit, you can refer to the documentation here.
If you would like to suggest improvements on the source code, you can submit a pull request. If you find bugs or would like to request features, you can create an issue. Please note that not all changes and requests will be approved but they will be assessed in due course.
For more information on these guidelines, you may refer to the Amity UIKit open source wiki or you may go directly to these related pages:
Easy Installation
Fully featured social experience with minimal amount of code.
Customize targeted UX flows, specific views and respond to user interactions to tailor a user experience for just your application
React 16+
React hooks
The UIKit is built on the foundation of the Amity Social Cloud API. We added a UI layer to speed up product development efforts of your application. At the core, it is leveraging the same Channel, Messaging concepts, subscribing to live objects while adding a UIKit to accelerate product delivery and UI that delivers great user experience for companies wanting to deploy messaging and other functionalities.
In the current state, our Social module can be used. This module can be integrated into your application with ease using this documentation.
AmityUIKitProvider
requires an API key. You need a valid API key to begin using the UIKit. Please find your account API key in Amity Social Cloud Console.
After logging in Console:
Click Settings to expand the menu.
Select Security.
In the Security page, you can find the API key in the Keys section.
AmityUIKitProvider
should be placed only once at the top of your application. Having multiple providers will create connection problems.
You can specify endpoints manually via optional parameters. API endpoints for each data center are different so you need to adjust the endpoint accordingly.
We currently support multi-data center capabilities for the following regions:
In the event that your user logs out, you should explicitly unregister the user from the SDK as well, to prevent the current device from receiving any unnecessary or restricted data.
AmityUIKit
uses the default theme as part of the design language.
Without customization, the UIKit already looks good. However, if you wish to customize the theme, you can declare changes to both colors and typography. The tables below shows the default theme values.
UIKit uses a small set of declared colors to simplify the design task for developers. These colours are automatically rendered at appropriate shades to communicate states and interaction to the users.
This is what the structure looks like if you are just using the default theme.
To customize your own theme:
Custom theme will be applied on top of default theme so you don't need to provide all the values. The default values will be used if there are some customizations that are missing.
Show community feeds, search, or create new communities
The community section consists of three components:
There are many components that you can use and integrate into your existing application.
Amity UIKit provides already built UI elements on a single page. You can change the appearance such as color and typography in the . However, the UIKit does not allow you to replace these small components with other views. In addition, you cannot modify the view hierarchy inside the page.
View feeds from communities as well as member
The Community Newsfeed consists of:
This is the quickest way to start using the Community feature. All the default logic and navigations have already been defined.
Module
Description
A feature for Social media where you can create community, post content, and see new content generated via Feed
Region
Endpoint
Endpoint URL
Europe
ApiEndpoint.EU
api.eu.amity.co
Singapore
ApiEndpoint.SG
api.sg.amity.co
United States
ApiEndpoint.US
api.us.amity.co
Color
Description
Default
Primary
Used for buttons and primary call to actions
#1054DE
Secondary
Used in secondary UI elements
#292B32
Alert
Used when informing users of errors or information that requires an attention.
#FA4D30
Highlight
Used for hyperlink text
#1054DE
Base
Text presented on light background
#292B32
Tertiary
Used in tertiary UI elements
#FF305A
Neutral
Used in supporting text
#17181C
Borders
Used in borders
#EBECEF
Background
Used in background
#FFFFFF
Section
Weight/Family
Style/Size
Global
Inter, apple-system, BlinkMacSystemFont, Arial, sans-serif
normal
Headline
600
20 px
Title
600
16 px
Body
normal
14 px
Body bold
600
14 px
Caption
normal
12 px
Caption bold
600
12 px
Feature | Description |
Search communities |
Feature | Description |
Global feed | Scroll vertically to see a list of posts in your global feed |
Custom post ranking | The posts will be ranked according to a score-sorting mechanism. |
Input the name of the community you want to search. Clicking the community from the returned list will take you to the .
Refer to for more information about this feature.
Feature | Description |
Edit profile page |
Community Members page |
Permissions page |
Navigation to Community Profile | Note: Please note that navigating back does not automatically save changes. You must manually save your edits using the Save button. |
Feature | Description |
My Community list | Scroll vertically to see a list of communities that you joined sorted in alphabetical order. |
Navigation to Community profile page |
Community creation |
Community creation | Create a community by providing information in the required fields. Click Create to submit. |
Feature | Description |
Community list by category | List of all communities that belong to the selected category sorted in alphabetical order |
Navigation to Community Profile page |
Members list |
Moderators list | List of all the community moderators. You can perform the following actions on each moderator: 1. Report user 2. Dismiss moderator 3. Remove from community |
Add Members | Add members to the community |
Feature | Description |
Community profile update | Update community information such as avatar, community name, description, category, and permission. The community's profile will be updated after clicking the Save button. |
Closing community | Click Close to close the community. When you close the community, the community page and all its content will be removed |
Access to the
Access to the
Access to the
Navigates back to the
Select a community to go to the
Click Create Community and the pop-up will show so you can input the details of the community that you will create
Select a community to go to the
List of all the members of the community. You can perform the following actions on each member: 1. Report user 2. 3. Remove from community
This section provides a form for post creation
Creating a text and image post
After posting a text and image post
Creating a text and file post
After posting a text and file post
Creating a text and video post
After posting a text and video post
Default poll creation page
Poll post
Poll voting
Mention users in a poll post
You can create a live stream post in the console.
You cannot create a live stream post via Web UIKit but you can view live stream videos using Web UIKit's live stream viewer. Refer to our Live Stream post documentation for details on how to view a live stream post.
Mention users in a livestream post
See community interaction as it happens
Out Web UIKit provides the livestream recording feature that allows you to record livestreams and broadcast simultaneously in real-time. You can also play historical streams when the livestream ends.
This section describes the livestream viewing feature in detail. Refer to our Livestream documentation to create a livestream in console.
A livestream post can be viewed in the following feeds:
Community feed
User feed
Global feed
Content feed
You will be able to see the livestream post and interact with it as soon as the livestreamer starts streaming.
Creating a livestream can be done in Console. There are two parts before you can create the livestream post. First, create the livestream. You need to have a third-party software installed such as OBS or any livestreaming tool. Then, create the post.
In Console, go to Livestream menu.
In Streaming management page, click .
In Create new stream pop-up, provide the title, description, and thumbnail.
Click OK to submit.
In Streaming management list, select the stream that you created.
In Streaming details page, copy the Server URL. Paste it in your livestreaming software and start the livestream.
In Console, go to Posts menu.
In Create livestream post pop-up, provide the Target type, Target ID, and Stream ID.
Target type - can be Content, Community, or User
Target ID - community ID or user ID of the community or User where you want to post the livestream
Stream ID - search for the streamId
value in the stream's Raw model in Streaming details
Click OK to submit.
Other viewers can watch your livestreaming while you are simultaneously recording it. They will see a LIVE indicator on the video.
Tapping the play button in the livestream post will play the video in a full screen mode.
The LIVE indicator on the upper left corner of the video indicates that the video is currently streaming while you are watching it.
After ending your livestreaming, the playback video may not be available instantly for viewers to see while it is still in the process of producing the playback video. The viewers will see a message that the playback will be available for watching shortly.
When the playback video is already available for viewing, a RECORDED indicator is shown on the video post.
The livestream may be in idle state. This happens when you delete the livestream in console or or other issues that will not enable the livestreaming to start. The viewer will see a message that the stream is currently unavailable.
A livestream post will have the same privacy and access controls as with the other posts. This means that users without the permission, such as those who are not members of the community, won’t be able to view the livestreaming/playback video in a private community. If the community is public, non-members can view the post as read only so they won't be able to interact with it.
Description | |
---|---|
In Post Management page, click and select Livestream Post in the dropdown selection.
Comment creation
Create comment by adding desired text in the compose bar and clicking Add comment.
Mention in comment
Mention users in comment by typing @ to activate mention suggestion and selecting their names in the suggestion list. Up to 30 users can be mentioned per post.
An alert will be shown if character count is greater than 50000 or mentions count is greater than 30.
Edit comment
Edit comment by clicking ... and selecting Edit comment from the pop-up. Click Save to submit changes.
Delete comment
Delete the comment by clicking ... and selecting Delete comment from the pop-up. Click Delete in the Delete comment confirmation message to confirm deletion. Otherwise, press Cancel.
Feature
Description
Post creation
Create post by adding content such as text, image, file, and video.
Mention users in post
Mention users in a post by typing @ to activate the mention suggestion and selecting their name in the suggestion list. You can mention up to 30 users per post.
An alert will be shown if character count is greater than 50000 or mentions count is greater than 30.
Feature | Description |
Becoming a member | Click Join to join a community |
Post creation |
Community profile update |
Community Settings |
Promote a community member to a moderator |
Leave Community | Click to leave the community. If you are the last remaining moderator in the community you need to transfer your moderator role to other members. |
Post review list
List of posts from community members that the moderator needs to approve.
Feature
Description
Text editing
Allows you to edit the post
Image removal
Allows you to remove images from the post
File removal
Allows you to remove files from the post
Click Post to
Feature
Description
Gallery
Scroll vertically to see images and videos from posts in a community feed
Media Filter
Filters according to media type (Photos and Videos). Click the corresponding tabs to see the filtered posts.
Feature
Description
Members list
List of community members. You can perform the following actions for each member: 1. Report user 2. Promote to moderator 3. Remove from community
Moderators list
List of community moderators
Navigation to user profile page
View user's profile by selecting the member from the list
This page shows user profile information as well as user feed
There are two types of user profiles:
Your own profile
Profile of another user
Feature
Description
User Profile
View user display name and description
Post creation
Click Post to create a post on your timeline
User profile Edit
Click Edit profile to open User profile edit page and update your profile
fThis section shows the user feed of a specific user.
This feature allows the transfer of moderator roles and blocks the last moderator to leave a community without transferring the role to other members, giving continuity to groups and creating a clear assignment to future moderators.
When a moderator leaves the community and there are no other moderators left, a pop-up will show that the moderator needs to nominate other members before leaving the community.
The moderator needs to promote a member to a moderator to transfer the moderator role to that member.
After a new moderator is selected, the moderator who wishes to leave can now leave the community.
In the Followings page you can see the list of users you are following.
In the Followers page you can see the list of users who follow you.
Feature
Description
User feed
Scroll vertically to see a list of posts from a user's feed
Private feed
You cannot see the feed of a user whose privacy setting is private and you're not connected to.
Feature | Description |
Report/undo report user | Report/undo reporting of a user |
Remove user from follower list | Remove a user from your Following list |
Redirect user to user profile page | Click a user in the list to go to the user's profile page |
Gallery | Scroll vertically to see images and videos from posts in a user feed |
Media Filter | Filters according to media type (Photos and Videos). Click the corresponding tabs to see the filtered posts. |
UIKIT allows the default behaviour to be overridden by custom logic
UIKit provides a way to render your own UI and override the default UIKit behavior.
Feature
Data Type
Description
targetType
enum
for community feed it should be PostTargetType.CommunityFeed
feedType
enum
possible values FeedType.Published
, FeedType.Declined
, FeedType.Reviewing
targetId
string
for community feed it should be <communityId>
className
string
custom style classes to be applied to feed
showPostCreator
boolean
show creator of the post
readonly
boolean
make feed readonly
AmityUIKit will allow some parts of the component to be replaceable with your own component
UIKit provides a way to use your own UI to replace the default UIKit components.
In this section, you can see all your pending follow requests. You can either Accept or Decline a request.
If a user in your pending list has withdrawn the request, the system error below will show when you accept or decline the user's follow request.
When a user withdraws a follow request, that user will not be automatically removed from your pending list. You need to accept/decline the request first.
Feature
Description
Accept Follow request
If you accept another user's follow request, the system will create a relationship and the user will be removed from your pending list.
Decline Follow request
If you decline another user's follow request, the system will invalidate the request and the user will be removed from your pending list.
Feature
Description
User profile update
Update your profile information such as avatar, display name, and description. Profile will be updated upon clicking Save.
Feature
Description
Community avatar
If the community has no avatar, the system will show the default avatar.
Community display name
If the community has no display name, the display name will be 'anonymous'.
Member count
Shows how many members the community has
Feature
Description
Conversation thread
Latest messages will be at the bottom of the screen. Scroll up to see all messages.
Feature
Description
Send Image
Allows you to send an image message.
Note:This is currently not supported yet.
Send file
Allows you to attach a file in the message.
Note:This is currently not supported yet.
Compose bar
You can compose the message that you want to send here.
Send
Button for sending your message.
Note: Pressing Enter will also send the message.
Our chat functionality within the UIKit will allow you to explore how to best integrate and design messaging features and visually see how they will look in your app
Web Chat UIKit is currently under Beta version so many functionalities are still under development. We will update the relevant sections accordingly as we progress.
Feature
Description
Recent chat list
List of the most recent chat
Navigation to Message list
Selecting a chat will show the message thread in the chatroom
This is the quickest way to start using the Chat feature , all the default logic and navigations have already been defined
UIKit provides default renderers for the core data types: text, image, and file. It also provides a way to render your own UI for your custom post.
A single post UI is composed of 1 or more blocks. This allows reusability of block components such as header or footer which can be shared by different kinds of posts.
This is an example of an image post which contains three tableview cells. Top cell represents the header, middle cell contains content and bottom cell is footer cell.
For now, we only export footer from UIKit
- AmityPostEngagementBar
.
First, you need to create your custom renderer.
Then, you need to pass your renderer into AmityUiKitProvider
Feature
Description
Flag/Unlfag message
You can only flag or unflag received messages. Click the three vertical dots at the bottom right of the bubble and select flag or unflag.
Edit edit
You can only edit the messages you sent. Click the three vertical dots at the bottom right of the bubble and select edit.
Delete
Click the three vertical dots at the bottom right and select delete to delete the message.
Sent time stamp
Shows the time stamp in HH:MM AM/PM format
Deleted message
If the message is deleted, the deleted label will be shown.
When a user clicks on the user profile avatar at the post creator area, UIKit will open User profile page.
However, you can intercept the event and define your own logic following the example below.
Let’s say you want to override the default logic and open your own modal showing the user profile instead of navigating to the user profile page.
There are many pages and actions on AmityUIKit. Pages can be nested inside others and it would be hard for overriding events on the nested pages. In order to solve this problem, we provide EkoEventHandler which is a behavior controller for actions that happen in UIKit.
To pass handlers into UIKit you need to set ‘actionHandlers’ prop for AmityUiKitProvider. All handlers are optional. If any is not passed, UIKit will use its own internal implementation.
You can access any action handler using the useAmityNavigation
hook.
Event | Parameter | Condition |
onChangePage | pageName | onChangePage is called right before UIKit changes the page type which should be rendered. If handler is passed, UIKit relies on it instead of its internal implementation |
onClickCategory | categoryId | Category display name is clicked |
onClickCommunity | communityId | Community display name is clicked |
onClickUser | userId | User avatar or user display name is clicked |
onCommunityCreated | communityId | New community is created |
onEditCommunity | communityId | Edit community button is clicked |
onEditUser | userId | Edit user button is clicked |
Feature | Description |
Community avatar | If the community has no avatar, the system will show the default avatar. |
Community display name | If the community has no display name, the display name will be 'anonymous'. |
As of v1.8, UIKit offers you the possibility to manage roles and permissions via integration with SDK
UIKit offers you a ready-to-use integration solution with the SDK Role & Permission feature. There is a default Community level role named Moderator.
Permissions
Description
Add user
Moderator user can add new members to the community.
Remove user
Moderator user can remove members from the community.
Assign Moderator role to other users
Moderator user can assign Moderator role to another member in the same community
Remove Moderator role from a Moderator user
Moderator user can remove Moderator role from another Moderator in the same community
Edit community
Moderator user can rename community, change community type as he see fit
Close community
Moderator user can close the community
Moderator badge
the "Moderator" badge shown on the post indicates it was created by a moderator user