PromucFlow_constructor/app/client/src/components/designSystems/appsmith/StepComponent.tsx

91 lines
2.0 KiB
TypeScript
Raw Normal View History

2020-04-15 11:42:11 +00:00
import React from "react";
import { ControlIcons } from "icons/ControlIcons";
chore: update Styled components to latest version and related cleanup (#19284) ## Description We need to upgrade `styled-components`, so that it will become easy to upgrade to version 6.0 when it is out. This is because, v6.0 has an important functionality which isn't available in today's version. ### Tasks completed - Update Styled components to latest version. - Prepare codebase by cleaning up the styled components functions that will be deprecated in version 6 - We are still using the `withTheme` HOC, we should instead use the `useTheme` hook (best practices) - Remove the `AnyStyledComponent` type it is un-necessary and will be deprecated Fixes #19463 ## Type of change - Non breaking change. The application should work as before and should not effect any visual elements or UI. ## How Has This Been Tested? - Manual @appsmithorg/qa please refer to the test plan for areas of interest. - Cypress: All existing test cases must pass. ### Test Plan - We need to do a sanity check on the Product Updates Modal, Release section. - We also need to do a sanity check on the Login, Signup, ResetPassword pages. - I think we can merge this Pull Request and continue with our weekly regression, because there are no style changes in this Pull Request, everything should work as expected. ## Checklist: ### Dev activity - [ ] My code follows the style guidelines of this project - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [ ] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [ ] New and existing unit tests pass locally with my changes - [ ] PR is being merged under a feature flag ### QA activity: - [ ] Test plan has been approved by relevant developers - [ ] Test plan has been peer reviewed by QA - [ ] Cypress test cases have been added and approved by either SDET or manual QA - [ ] Organized project review call with relevant stakeholders after Round 1/2 of QA - [ ] Added Test Plan Approved label after reveiwing all Cypress test
2023-01-13 11:05:59 +00:00
import styled from "styled-components";
2020-04-15 11:42:11 +00:00
chore: update Styled components to latest version and related cleanup (#19284) ## Description We need to upgrade `styled-components`, so that it will become easy to upgrade to version 6.0 when it is out. This is because, v6.0 has an important functionality which isn't available in today's version. ### Tasks completed - Update Styled components to latest version. - Prepare codebase by cleaning up the styled components functions that will be deprecated in version 6 - We are still using the `withTheme` HOC, we should instead use the `useTheme` hook (best practices) - Remove the `AnyStyledComponent` type it is un-necessary and will be deprecated Fixes #19463 ## Type of change - Non breaking change. The application should work as before and should not effect any visual elements or UI. ## How Has This Been Tested? - Manual @appsmithorg/qa please refer to the test plan for areas of interest. - Cypress: All existing test cases must pass. ### Test Plan - We need to do a sanity check on the Product Updates Modal, Release section. - We also need to do a sanity check on the Login, Signup, ResetPassword pages. - I think we can merge this Pull Request and continue with our weekly regression, because there are no style changes in this Pull Request, everything should work as expected. ## Checklist: ### Dev activity - [ ] My code follows the style guidelines of this project - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [ ] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [ ] New and existing unit tests pass locally with my changes - [ ] PR is being merged under a feature flag ### QA activity: - [ ] Test plan has been approved by relevant developers - [ ] Test plan has been peer reviewed by QA - [ ] Cypress test cases have been added and approved by either SDET or manual QA - [ ] Organized project review call with relevant stakeholders after Round 1/2 of QA - [ ] Added Test Plan Approved label after reveiwing all Cypress test
2023-01-13 11:05:59 +00:00
const StyledIncreaseIcon = styled(ControlIcons.INCREASE_CONTROL)`
2020-04-15 11:42:11 +00:00
display: flex;
justify-content: center;
align-items: center;
position: relative;
cursor: pointer;
width: 40px;
height: 32px;
svg {
path {
2020-12-24 04:32:25 +00:00
fill: ${(props) => props.theme.colors.paneSectionLabel};
2020-04-15 11:42:11 +00:00
}
}
`;
chore: update Styled components to latest version and related cleanup (#19284) ## Description We need to upgrade `styled-components`, so that it will become easy to upgrade to version 6.0 when it is out. This is because, v6.0 has an important functionality which isn't available in today's version. ### Tasks completed - Update Styled components to latest version. - Prepare codebase by cleaning up the styled components functions that will be deprecated in version 6 - We are still using the `withTheme` HOC, we should instead use the `useTheme` hook (best practices) - Remove the `AnyStyledComponent` type it is un-necessary and will be deprecated Fixes #19463 ## Type of change - Non breaking change. The application should work as before and should not effect any visual elements or UI. ## How Has This Been Tested? - Manual @appsmithorg/qa please refer to the test plan for areas of interest. - Cypress: All existing test cases must pass. ### Test Plan - We need to do a sanity check on the Product Updates Modal, Release section. - We also need to do a sanity check on the Login, Signup, ResetPassword pages. - I think we can merge this Pull Request and continue with our weekly regression, because there are no style changes in this Pull Request, everything should work as expected. ## Checklist: ### Dev activity - [ ] My code follows the style guidelines of this project - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [ ] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [ ] New and existing unit tests pass locally with my changes - [ ] PR is being merged under a feature flag ### QA activity: - [ ] Test plan has been approved by relevant developers - [ ] Test plan has been peer reviewed by QA - [ ] Cypress test cases have been added and approved by either SDET or manual QA - [ ] Organized project review call with relevant stakeholders after Round 1/2 of QA - [ ] Added Test Plan Approved label after reveiwing all Cypress test
2023-01-13 11:05:59 +00:00
const StyledDecreaseIcon = styled(ControlIcons.DECREASE_CONTROL)`
2020-04-15 11:42:11 +00:00
display: flex;
justify-content: center;
align-items: center;
position: relative;
cursor: pointer;
width: 40px;
height: 32px;
svg {
path {
2020-12-24 04:32:25 +00:00
fill: ${(props) => props.theme.colors.paneSectionLabel};
2020-04-15 11:42:11 +00:00
}
}
`;
const StepWrapper = styled.div`
display: flex;
align-items: center;
justify-content: center;
width: 100%;
background: #121518;
border-radius: 4px;
height: 32px;
line-height: 32px;
`;
const InputWrapper = styled.div`
width: calc(100% - 80px);
height: 32px;
line-height: 32px;
background: #23292e;
font-size: 14px;
2020-12-24 04:32:25 +00:00
color: ${(props) => props.theme.colors.textOnDarkBG};
2020-04-15 11:42:11 +00:00
text-align: center;
letter-spacing: 1.44px;
`;
interface StepComponentProps {
value: number;
min: number;
max: number;
steps: number;
displayFormat: (value: number) => string;
onChange: (value: number) => void;
}
export function StepComponent(props: StepComponentProps) {
2020-04-15 11:42:11 +00:00
function decrease() {
if (props.value < props.min) {
return;
}
const value = props.value - props.steps;
props.onChange(value);
}
function increase() {
if (props.value > props.max) {
return;
}
const value = props.value + props.steps;
props.onChange(value);
}
return (
<StepWrapper>
<StyledDecreaseIcon height={2} onClick={decrease} width={12} />
2020-04-15 11:42:11 +00:00
<InputWrapper>{props.displayFormat(props.value)}</InputWrapper>
<StyledIncreaseIcon height={12} onClick={increase} width={12} />
2020-04-15 11:42:11 +00:00
</StepWrapper>
);
}
2020-04-15 11:42:11 +00:00
export default StepComponent;