diff --git a/src/component-index.js b/src/component-index.js
index 68a734cbf6..090a27d5ed 100644
--- a/src/component-index.js
+++ b/src/component-index.js
@@ -103,10 +103,14 @@ import views$dialogs$UnknownDeviceDialog from './components/views/dialogs/Unknow
views$dialogs$UnknownDeviceDialog && (module.exports.components['views.dialogs.UnknownDeviceDialog'] = views$dialogs$UnknownDeviceDialog);
import views$elements$AccessibleButton from './components/views/elements/AccessibleButton';
views$elements$AccessibleButton && (module.exports.components['views.elements.AccessibleButton'] = views$elements$AccessibleButton);
+import views$elements$ActionButton from './components/views/elements/ActionButton';
+views$elements$ActionButton && (module.exports.components['views.elements.ActionButton'] = views$elements$ActionButton);
import views$elements$AddressSelector from './components/views/elements/AddressSelector';
views$elements$AddressSelector && (module.exports.components['views.elements.AddressSelector'] = views$elements$AddressSelector);
import views$elements$AddressTile from './components/views/elements/AddressTile';
views$elements$AddressTile && (module.exports.components['views.elements.AddressTile'] = views$elements$AddressTile);
+import views$elements$CreateRoomButton from './components/views/elements/CreateRoomButton';
+views$elements$CreateRoomButton && (module.exports.components['views.elements.CreateRoomButton'] = views$elements$CreateRoomButton);
import views$elements$DeviceVerifyButtons from './components/views/elements/DeviceVerifyButtons';
views$elements$DeviceVerifyButtons && (module.exports.components['views.elements.DeviceVerifyButtons'] = views$elements$DeviceVerifyButtons);
import views$elements$DirectorySearchBox from './components/views/elements/DirectorySearchBox';
@@ -119,14 +123,20 @@ import views$elements$EditableTextContainer from './components/views/elements/Ed
views$elements$EditableTextContainer && (module.exports.components['views.elements.EditableTextContainer'] = views$elements$EditableTextContainer);
import views$elements$EmojiText from './components/views/elements/EmojiText';
views$elements$EmojiText && (module.exports.components['views.elements.EmojiText'] = views$elements$EmojiText);
+import views$elements$HomeButton from './components/views/elements/HomeButton';
+views$elements$HomeButton && (module.exports.components['views.elements.HomeButton'] = views$elements$HomeButton);
import views$elements$MemberEventListSummary from './components/views/elements/MemberEventListSummary';
views$elements$MemberEventListSummary && (module.exports.components['views.elements.MemberEventListSummary'] = views$elements$MemberEventListSummary);
import views$elements$PowerSelector from './components/views/elements/PowerSelector';
views$elements$PowerSelector && (module.exports.components['views.elements.PowerSelector'] = views$elements$PowerSelector);
import views$elements$ProgressBar from './components/views/elements/ProgressBar';
views$elements$ProgressBar && (module.exports.components['views.elements.ProgressBar'] = views$elements$ProgressBar);
-import views$elements$RoleButton from './components/views/elements/RoleButton';
-views$elements$RoleButton && (module.exports.components['views.elements.RoleButton'] = views$elements$RoleButton);
+import views$elements$RoomDirectoryButton from './components/views/elements/RoomDirectoryButton';
+views$elements$RoomDirectoryButton && (module.exports.components['views.elements.RoomDirectoryButton'] = views$elements$RoomDirectoryButton);
+import views$elements$SettingsButton from './components/views/elements/SettingsButton';
+views$elements$SettingsButton && (module.exports.components['views.elements.SettingsButton'] = views$elements$SettingsButton);
+import views$elements$StartChatButton from './components/views/elements/StartChatButton';
+views$elements$StartChatButton && (module.exports.components['views.elements.StartChatButton'] = views$elements$StartChatButton);
import views$elements$TintableSvg from './components/views/elements/TintableSvg';
views$elements$TintableSvg && (module.exports.components['views.elements.TintableSvg'] = views$elements$TintableSvg);
import views$elements$TruncatedList from './components/views/elements/TruncatedList';
diff --git a/src/components/views/elements/RoleButton.js b/src/components/views/elements/ActionButton.js
similarity index 54%
rename from src/components/views/elements/RoleButton.js
rename to src/components/views/elements/ActionButton.js
index 60f227a067..6d6289ddab 100644
--- a/src/components/views/elements/RoleButton.js
+++ b/src/components/views/elements/ActionButton.js
@@ -24,8 +24,11 @@ export default React.createClass({
displayName: 'RoleButton',
propTypes: {
- role: PropTypes.string.isRequired,
size: PropTypes.string,
+ tooltip: PropTypes.bool,
+ action: PropTypes.string.isRequired,
+ label: PropTypes.string.isRequired,
+ iconPath: PropTypes.string.isRequired,
},
getDefaultProps: function() {
@@ -43,26 +46,7 @@ export default React.createClass({
_onClick: function(ev) {
ev.stopPropagation();
-
- let action;
- switch(this.props.role) {
- case 'start_chat':
- action = 'view_create_chat';
- break;
- case 'room_directory':
- action = 'view_room_directory';
- break;
- case 'create_room':
- action = 'view_create_room';
- break;
- case 'home_page':
- action = 'view_home_page';
- break;
- case 'settings':
- action = 'view_user_settings';
- break;
- }
- if (action) dis.dispatch({action: action});
+ dis.dispatch({action: this.props.action});
},
_onMouseEnter: function() {
@@ -73,43 +57,13 @@ export default React.createClass({
this.setState({showTooltip: false});
},
- _getLabel() {
- switch(this.props.role) {
- case 'start_chat':
- return 'Start chat';
- case 'room_directory':
- return 'Room directory';
- case 'create_room':
- return 'Create new room';
- case 'home_page':
- return 'Welcome page';
- case 'settings':
- return 'Settings';
- }
- },
-
- _getIconPath() {
- switch(this.props.role) {
- case 'start_chat':
- return 'img/icons-people.svg';
- case 'room_directory':
- return 'img/icons-directory.svg';
- case 'create_room':
- return 'img/icons-create-room.svg';
- case 'home_page':
- return 'img/icons-home.svg';
- case 'settings':
- return 'img/icons-settings.svg';
- }
- },
-
render: function() {
const TintableSvg = sdk.getComponent("elements.TintableSvg");
let tooltip;
if (this.state.showTooltip) {
const RoomTooltip = sdk.getComponent("rooms.RoomTooltip");
- tooltip =