Explorar el Código

Clean column collapsible (#3931)

* Remove unused column_collapsable.js
* Remove old styles
* Extract `> div`  style to independent class
master
unarist hace 7 años
committed by Eugen Rochko
padre
commit
21c2bc119c
Se han modificado 3 ficheros con 6 adiciones y 87 borrados
  1. +0
    -50
      app/javascript/mastodon/components/column_collapsable.js
  2. +1
    -1
      app/javascript/mastodon/components/column_header.js
  3. +5
    -36
      app/javascript/styles/components.scss

+ 0
- 50
app/javascript/mastodon/components/column_collapsable.js Ver fichero

@@ -1,50 +0,0 @@
import React from 'react';
import PropTypes from 'prop-types';

export default class ColumnCollapsable extends React.PureComponent {

static propTypes = {
icon: PropTypes.string.isRequired,
title: PropTypes.string,
fullHeight: PropTypes.number.isRequired,
children: PropTypes.node,
onCollapse: PropTypes.func,
};

state = {
collapsed: true,
animating: false,
};

handleToggleCollapsed = () => {
const currentState = this.state.collapsed;

this.setState({ collapsed: !currentState, animating: true });

if (!currentState && this.props.onCollapse) {
this.props.onCollapse();
}
}

handleTransitionEnd = () => {
this.setState({ animating: false });
}

render () {
const { icon, title, fullHeight, children } = this.props;
const { collapsed, animating } = this.state;

return (
<div className={`column-collapsable ${collapsed ? 'collapsed' : ''}`} onTransitionEnd={this.handleTransitionEnd}>
<div role='button' tabIndex='0' title={`${title}`} className='column-collapsable__button column-icon' onClick={this.handleToggleCollapsed}>
<i className={`fa fa-${icon}`} />
</div>

<div className='column-collapsable__content' style={{ height: `${fullHeight}px` }}>
{(!collapsed || animating) && children}
</div>
</div>
);
}

}

+ 1
- 1
app/javascript/mastodon/components/column_header.js Ver fichero

@@ -132,7 +132,7 @@ export default class ColumnHeader extends React.PureComponent {
</div>

<div className={collapsibleClassName} onTransitionEnd={this.handleTransitionEnd}>
<div>
<div className='column-header__collapsible-inner'>
{(!collapsed || animating) && collapsedContent}
</div>
</div>


+ 5
- 36
app/javascript/styles/components.scss Ver fichero

@@ -58,37 +58,6 @@
position: relative;
}

.column-collapsable {
position: relative;

.column-collapsable__content {
overflow: auto;
transition: 300ms ease;
opacity: 1;
max-height: 70vh;
}

&.collapsed .column-collapsable__content {
height: 0 !important;
opacity: 0;
}

.column-collapsable__button {
color: $primary-text-color;
background: lighten($ui-base-color, 8%);

&:hover {
color: $primary-text-color;
background: lighten($ui-base-color, 8%);
}
}

&.collapsed .column-collapsable__button {
color: $ui-primary-color;
background: lighten($ui-base-color, 4%);
}
}

.column-icon {
background: lighten($ui-base-color, 4%);
color: $ui-primary-color;
@@ -2110,11 +2079,6 @@ button.icon-button.active i.fa-retweet {
transition: max-height 150ms ease-in-out, opacity 300ms linear;
opacity: 1;

& > div {
background: lighten($ui-base-color, 8%);
padding: 15px;
}

&.collapsed {
max-height: 0;
opacity: 0.5;
@@ -2125,6 +2089,11 @@ button.icon-button.active i.fa-retweet {
}
}

.column-header__collapsible-inner {
background: lighten($ui-base-color, 8%);
padding: 15px;
}

.column-header__setting-btn {
&:hover {
color: lighten($ui-primary-color, 4%);


Cargando…
Cancelar
Guardar