You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
1.0 KiB
JavaScript
29 lines
1.0 KiB
JavaScript
"use strict";
|
|
|
|
const React = require("react");
|
|
|
|
const useTheme = require("../../util/themeable");
|
|
const defaultStyle = require("./style.css");
|
|
const generateGridItemStyle = require("../../util/generate-grid-item-style");
|
|
const Button = require("../button");
|
|
const ProgressBar = require("../progress-bar");
|
|
|
|
module.exports = function ProgressButton({ x, y, horizontal, vertical, type, icon, progress, progressColor, children }) {
|
|
// FIXME: progressColor in theme, same for custom button style / proportions -- maybe make `type` a thing that takes an array, for multiple type classes? to deal with composite controls
|
|
|
|
let { withTheme } = useTheme({ control: "progressButton", defaultStyle });
|
|
|
|
let direction = (vertical === true)
|
|
? "vertical"
|
|
: "horizontal";
|
|
|
|
return (
|
|
<div className={withTheme("uilibComponent", "progressButton", `direction-${direction}`)} style={generateGridItemStyle({ x, y })}>
|
|
<Button type={type} icon={icon}>
|
|
{children}
|
|
</Button>
|
|
<ProgressBar progress={progress} progressColor={progressColor} />
|
|
</div>
|
|
);
|
|
};
|