Skip to content

Commit

Permalink
Merge pull request #2395 from shubhamkmr04/shubham/default-pos-view
Browse files Browse the repository at this point in the history
POS: Option to change default view
  • Loading branch information
kaloudis authored Sep 16, 2024
2 parents 54e11f7 + 84ff12c commit 8f1fe10
Show file tree
Hide file tree
Showing 4 changed files with 80 additions and 16 deletions.
1 change: 1 addition & 0 deletions locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -792,6 +792,7 @@
"views.Settings.POS.Category.noCategoriesDefined": "No categories defined yet",
"views.Settings.POS.saveCategory": "Save category",
"views.Settings.POS.Products": "Products",
"views.Settings.POS.Keypad": "POS Keypad",
"views.Settings.POS.Product": "Product",
"views.Settings.POS.Product.name": "Product name",
"views.Settings.POS.Product.noProductsDefined": "No products defined yet",
Expand Down
17 changes: 16 additions & 1 deletion stores/SettingsStore.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ interface PosSettings {
showKeypad?: boolean;
taxPercentage?: string;
enablePrinter?: boolean;
defaultView?: string;
}

interface PaymentsSettings {
Expand Down Expand Up @@ -933,6 +934,19 @@ export const DEFAULT_VIEW_KEYS = [
}
];

export const DEFAULT_VIEW_KEYS_POS = [
{
key: 'Products',
translateKey: 'views.Settings.POS.Products',
value: 'Products'
},
{
key: 'POS Keypad',
translateKey: 'views.Settings.POS.Keypad',
value: 'POS Keypad'
}
];

export const DEFAULT_THEME = 'kyriaki';
export const DEFAULT_FIAT = 'USD';
export const DEFAULT_FIAT_RATES_SOURCE = 'Zeus';
Expand Down Expand Up @@ -1076,7 +1090,8 @@ export default class SettingsStore {
squareDevMode: false,
showKeypad: true,
taxPercentage: '0',
enablePrinter: false
enablePrinter: false,
defaultView: 'Products'
},
payments: {
defaultFeeMethod: 'fixed', // deprecated
Expand Down
72 changes: 59 additions & 13 deletions views/Settings/PointOfSale.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import Switch from '../../components/Switch';
import TextInput from '../../components/TextInput';

import SettingsStore, {
DEFAULT_VIEW_KEYS_POS,
POS_CONF_PREF_KEYS,
POS_ENABLED_KEYS,
PosEnabled
Expand All @@ -40,6 +41,7 @@ interface PointOfSaleState {
showKeypad: boolean;
taxPercentage: string;
enablePrinter: boolean;
defaultView: string;
}

@inject('SettingsStore')
Expand All @@ -58,7 +60,8 @@ export default class PointOfSale extends React.Component<
squareDevMode: false,
showKeypad: true,
taxPercentage: '0',
enablePrinter: false
enablePrinter: false,
defaultView: 'Products'
};

async UNSAFE_componentWillMount() {
Expand All @@ -77,7 +80,9 @@ export default class PointOfSale extends React.Component<
squareDevMode: settings?.pos?.squareDevMode || false,
showKeypad: settings?.pos?.showKeypad || false,
taxPercentage: settings?.pos?.taxPercentage || '0',
enablePrinter: settings?.pos?.enablePrinter || false
enablePrinter: settings?.pos?.enablePrinter || false,
defaultView:
(settings?.pos && settings?.pos?.defaultView) || 'Products'
});
}

Expand All @@ -102,7 +107,8 @@ export default class PointOfSale extends React.Component<
squareDevMode,
showKeypad,
taxPercentage,
enablePrinter
enablePrinter,
defaultView
} = this.state;
const { updateSettings, settings }: any = SettingsStore;
const { passphrase, pin, fiatEnabled } = settings;
Expand Down Expand Up @@ -182,7 +188,8 @@ export default class PointOfSale extends React.Component<
squareDevMode,
showKeypad,
taxPercentage,
enablePrinter
enablePrinter,
defaultView
}
});
}}
Expand Down Expand Up @@ -219,7 +226,8 @@ export default class PointOfSale extends React.Component<
squareDevMode,
showKeypad,
taxPercentage,
enablePrinter
enablePrinter,
defaultView
}
});
}}
Expand Down Expand Up @@ -253,7 +261,8 @@ export default class PointOfSale extends React.Component<
squareDevMode,
showKeypad,
taxPercentage,
enablePrinter
enablePrinter,
defaultView
}
});
}}
Expand Down Expand Up @@ -302,7 +311,8 @@ export default class PointOfSale extends React.Component<
!squareDevMode,
showKeypad,
taxPercentage,
enablePrinter
enablePrinter,
defaultView
}
});
}}
Expand Down Expand Up @@ -342,7 +352,8 @@ export default class PointOfSale extends React.Component<
squareDevMode,
showKeypad,
taxPercentage,
enablePrinter
enablePrinter,
defaultView
}
});
}}
Expand All @@ -366,12 +377,43 @@ export default class PointOfSale extends React.Component<
disableTips,
squareDevMode,
showKeypad,
taxPercentage
taxPercentage,
defaultView
}
});
}}
values={POS_CONF_PREF_KEYS}
/>
{posEnabled === PosEnabled.Standalone && (
<DropdownSetting
title={localeString(
'views.Settings.Display.defaultView'
)}
selectedValue={defaultView}
onValueChange={async (
value: string
) => {
this.setState({
defaultView: value
});
await updateSettings({
pos: {
posEnabled,
squareAccessToken,
squareLocationId,
merchantName,
confirmationPreference,
disableTips,
squareDevMode,
showKeypad,
taxPercentage,
defaultView: value
}
});
}}
values={DEFAULT_VIEW_KEYS_POS}
/>
)}

<ListItem
containerStyle={{
Expand Down Expand Up @@ -415,7 +457,8 @@ export default class PointOfSale extends React.Component<
squareDevMode,
showKeypad,
taxPercentage,
enablePrinter
enablePrinter,
defaultView
}
});
}}
Expand Down Expand Up @@ -470,7 +513,8 @@ export default class PointOfSale extends React.Component<
showKeypad,
taxPercentage,
enablePrinter:
!enablePrinter
!enablePrinter,
defaultView
}
});
}}
Expand Down Expand Up @@ -523,7 +567,8 @@ export default class PointOfSale extends React.Component<
disableTips,
squareDevMode,
taxPercentage,
showKeypad: !showKeypad
showKeypad: !showKeypad,
defaultView
}
});
}}
Expand Down Expand Up @@ -558,7 +603,8 @@ export default class PointOfSale extends React.Component<
disableTips,
squareDevMode,
taxPercentage: text,
showKeypad
showKeypad,
defaultView
}
});
}}
Expand Down
6 changes: 4 additions & 2 deletions views/Wallet/Wallet.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -697,7 +697,9 @@ export default class Wallet extends React.Component<WalletProps, WalletState> {
initialRouteName={
posEnabled !== PosEnabled.Disabled &&
posStatus === 'active'
? 'POS'
? (settings.pos &&
settings.pos.defaultView) ||
'Products'
: isSyncing
? 'Balance'
: (settings.display &&
Expand All @@ -720,7 +722,7 @@ export default class Wallet extends React.Component<WalletProps, WalletState> {
if (route.name === 'Balance') {
return <Temple fill={color} />;
}
if (route.name === 'POS') {
if (route.name === 'Products') {
return <POS stroke={color} />;
}
if (route.name === 'POS Keypad') {
Expand Down

0 comments on commit 8f1fe10

Please sign in to comment.