Skip to content

Commit

Permalink
Merge pull request #817 from Dygmalab/fixStandardViewNoKey
Browse files Browse the repository at this point in the history
fix: now standard view lets you configure properly a no key with modi…
  • Loading branch information
alexpargon authored Jul 2, 2024
2 parents 547d089 + 7dd442a commit bb136b5
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 15 deletions.
9 changes: 5 additions & 4 deletions src/renderer/modules/KeysTabs/KeysTab.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,13 @@ import Callout from "@Renderer/components/molecules/Callout/Callout";
import { KeyPickerReduced } from "@Renderer/modules/KeyPickerKeyboard";
import ModPicker from "@Renderer/modules/KeyPickerKeyboard/ModPicker";
import DualFunctionPicker from "@Renderer/modules/KeyPickerKeyboard/DualFunctionPicker";
import { SegmentedKeyType } from "@Renderer/types/layout";

interface KeysTabProps {
action: any;
actions: any;
keyCode: any;
code: any;
keyCode: SegmentedKeyType;
code: SegmentedKeyType;
isStandardView: boolean;
actTab: string;
superkeyAction: number;
Expand Down Expand Up @@ -85,15 +86,15 @@ const KeysTab: React.FC<KeysTabProps> = ({
{i18n.editor.standardView.keys.addModifiers}
</Heading>
<p>{i18n.editor.standardView.keys.descriptionModifiers}</p>
<ModPicker keyCode={code} onKeySelect={onKeyPress} isStandardView={isStandardView} />
<ModPicker keyCode={keyCode} onKeySelect={onKeyPress} isStandardView={isStandardView} />
</div>
{actTab !== "super" && (
<div className="cardButtons cardButtonsDual">
<Heading headingLevel={4} renderAs="h4">
{i18n.editor.standardView.keys.addDualFunction}
</Heading>
<p>{i18n.editor.standardView.keys.dualFunctionDescription}</p>
<DualFunctionPicker keyCode={code} onKeySelect={onKeyPress} activeTab={actTab} isStandardView={isStandardView} />
<DualFunctionPicker keyCode={keyCode} onKeySelect={onKeyPress} activeTab={actTab} isStandardView={isStandardView} />
</div>
)}
</div>
Expand Down
22 changes: 11 additions & 11 deletions src/renderer/modules/StandardView/StandardView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -245,14 +245,15 @@ interface StandardViewProps {
interface StandardViewState {
currentTab: any;
stateCode: number;
selected: number;
selected: SegmentedKeyType;
}

export default class StandardView extends React.Component<StandardViewProps, StandardViewState> {
keymapDB: KeymapDB;
constructor(props: StandardViewProps) {
super(props);
const selectedKey =
this.keymapDB = new KeymapDB();
const selectedKey: number =
props.actTab !== "super"
? props.keyIndex !== -1
? props.layerData[props.keyIndex].keyCode
Expand All @@ -263,26 +264,25 @@ export default class StandardView extends React.Component<StandardViewProps, Sta
this.state = {
currentTab: undefined,
stateCode: 0,
selected: selectedKey,
selected: this.keymapDB.keySegmentator(selectedKey),
};
this.keymapDB = new KeymapDB();
}

componentDidUpdate(prevProps: StandardViewProps) {
const { keyIndex, layerData, actTab } = this.props;
if (keyIndex !== prevProps.keyIndex) {
const selectedKey =
const selectedKey: number =
actTab !== "super" ? (keyIndex !== -1 ? layerData[keyIndex].keyCode : 0) : keyIndex !== -1 ? layerData[keyIndex] : 0;
this.setState({
stateCode: selectedKey,
selected: selectedKey,
selected: this.keymapDB.keySegmentator(selectedKey),
});
}
}

updateSelected = (newKey: number) => {
this.setState({
selected: newKey,
selected: this.keymapDB.keySegmentator(newKey),
});
};

Expand All @@ -295,7 +295,7 @@ export default class StandardView extends React.Component<StandardViewProps, Sta
const { onKeySelect, handleSave } = this.props;
const { selected } = this.state;

onKeySelect(selected);
onKeySelect(selected.base + selected.modified);
handleSave();
};

Expand Down Expand Up @@ -366,9 +366,9 @@ export default class StandardView extends React.Component<StandardViewProps, Sta
const { stateCode, selected, currentTab } = this.state;
let keyCode: number;
if (actTab === "super") {
keyCode = selected;
keyCode = selected.base + selected.modified;
} else {
keyCode = selected;
keyCode = selected.base + selected.modified;
}
const selKey = this.parseKey(keyCode);
const oldKey = this.parseKey(stateCode);
Expand Down Expand Up @@ -451,7 +451,7 @@ export default class StandardView extends React.Component<StandardViewProps, Sta
<TabsContent value="tabKeys" key="tabKeys">
<motion.div initial="hidden" animate="visible" key="tabKeys" variants={tabVariants}>
<KeysTab
keyCode={keyCode}
keyCode={selected}
code={code}
onKeyPress={this.updateSelected}
isStandardView={isStandardView}
Expand Down

0 comments on commit bb136b5

Please sign in to comment.