import React from "react"; import { connect } from "react-redux"; import classnames from "classnames"; import { getOrderedTracks, getMinimalMediaText, getWindowSize } from "../../selectors"; import { getTimeStr } from "../../utils"; import { SET_FOCUSED_WINDOW } from "../../actionTypes"; import { WINDOWS, WINDOW_RESIZE_SEGMENT_WIDTH, WINDOW_WIDTH, CHARACTER_WIDTH, UTF8_ELLIPSIS } from "../../constants"; import { togglePlaylistShadeMode, closeWindow } from "../../actionCreators"; import CharacterString from "../CharacterString"; import PlaylistResizeTarget from "./PlaylistResizeTarget"; class PlaylistShade extends React.Component { _addedWidth() { return this.props.playlistSize[0] * WINDOW_RESIZE_SEGMENT_WIDTH; } _trimmedName() { const { name } = this.props; if (name == null) { return "[No file]"; } const MIN_NAME_WIDTH = 205; const nameLength = (MIN_NAME_WIDTH + this._addedWidth()) / CHARACTER_WIDTH; return name.length > nameLength ? name.slice(0, nameLength - 1) + UTF8_ELLIPSIS : name; } _time() { const { length, name } = this.props; return name == null ? "" : getTimeStr(length); } render() { const { toggleShade, close, focusPlaylist, focused } = this.props; const style = { width: `${WINDOW_WIDTH + this._addedWidth()}px` }; const classes = classnames("window", "draggable", { selected: focused === WINDOWS.PLAYLIST }); return (