Skip to content

Commit 2134746

Browse files
edospadonitonyco97
andauthored
feat: add incoming calls settings dialog (#78)
Co-authored-by: Antonio <[email protected]>
1 parent 98028c4 commit 2134746

File tree

15 files changed

+632
-9
lines changed

15 files changed

+632
-9
lines changed

package-lock.json

Lines changed: 35 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
"@nethesis/nethesis-brands-svg-icons": "github:nethesis/Font-Awesome#ns-brands",
5050
"@nethesis/nethesis-light-svg-icons": "github:nethesis/Font-Awesome#ns-light",
5151
"@nethesis/nethesis-solid-svg-icons": "github:nethesis/Font-Awesome#ns-solid",
52-
"@nethesis/phone-island": "^0.17.8",
52+
"@nethesis/phone-island": "^0.17.11",
5353
"@tailwindcss/forms": "^0.5.7",
5454
"@types/lodash": "^4.14.202",
5555
"@types/node": "^18.19.9",

public/locales/en/translations.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,8 @@
331331
"Wrong file type": "Wrong file type",
332332
"Delete profile picture": "Delete profile picture",
333333
"Devices": "Audio and Video",
334+
"IncomingCalls": "Incoming Calls",
335+
"Ringtone": "Ringtone",
334336
"Time preferences": "Time preferences",
335337
"Login/logout preferences": "Login/logout preferences",
336338
"Logout from queue automatically": "Logout from queue automatically",

public/locales/it/translations.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,8 @@
331331
"Wrong file type": "Formato file errato",
332332
"Delete profile picture": "Elimina immagine profilo",
333333
"Devices": "Audio e Video",
334+
"IncomingCalls": "Chiamate in Arrivo",
335+
"Ringtone": "Suoneria",
334336
"Time preferences": "Preferenze di tempo",
335337
"Login/logout preferences": "Preferenze di entrata/uscita",
336338
"Logout from queue automatically": "Esci dalla coda automaticamente",

src/main/lib/ipcEvents.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,26 @@ export function registerIpcEvents() {
284284
PhoneIslandController.instance.window.emit(IPC_EVENTS.CHANGE_PREFERRED_DEVICES, devices)
285285
})
286286

287+
ipcMain.on(IPC_EVENTS.CHANGE_RINGTONE_SETTINGS, (_, settings) => {
288+
Log.info('Received CHANGE_RINGTONE_SETTINGS in ipcEvents:', settings)
289+
PhoneIslandController.instance.window.emit(IPC_EVENTS.CHANGE_RINGTONE_SETTINGS, settings)
290+
})
291+
292+
ipcMain.on(IPC_EVENTS.PLAY_RINGTONE_PREVIEW, (_, audioData) => {
293+
PhoneIslandController.instance.window.emit(IPC_EVENTS.PLAY_RINGTONE_PREVIEW, audioData)
294+
})
295+
296+
ipcMain.on(IPC_EVENTS.STOP_RINGTONE_PREVIEW, () => {
297+
PhoneIslandController.instance.window.emit(IPC_EVENTS.STOP_RINGTONE_PREVIEW)
298+
})
299+
300+
ipcMain.on(IPC_EVENTS.AUDIO_PLAYER_CLOSED, () => {
301+
// Broadcast to all windows
302+
BrowserWindow.getAllWindows().forEach(window => {
303+
window.webContents.send(IPC_EVENTS.AUDIO_PLAYER_CLOSED)
304+
})
305+
})
306+
287307
ipcMain.on(IPC_EVENTS.CHANGE_SHORTCUT, async (_, combo) => {
288308
// unregister previous shortcut
289309
await globalShortcut.unregisterAll();

src/renderer/public/locales/en/translations.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,8 @@
331331
"Wrong file type": "Wrong file type",
332332
"Delete profile picture": "Delete profile picture",
333333
"Devices": "Audio and Video",
334+
"IncomingCalls": "Incoming Calls",
335+
"Ringtone": "Ringtone",
334336
"Time preferences": "Time preferences",
335337
"Login/logout preferences": "Login/logout preferences",
336338
"Logout from queue automatically": "Logout from queue automatically",

src/renderer/public/locales/it/translations.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,8 @@
331331
"Wrong file type": "Formato file errato",
332332
"Delete profile picture": "Elimina immagine profilo",
333333
"Devices": "Audio e Video",
334+
"IncomingCalls": "Chiamate in Arrivo",
335+
"Ringtone": "Suoneria",
334336
"Time preferences": "Preferenze di tempo",
335337
"Login/logout preferences": "Preferenze di entrata/uscita",
336338
"Logout from queue automatically": "Esci dalla coda automaticamente",

src/renderer/src/components/Modules/NethVoice/BaseModule/Navbar.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { ProfileDialog } from './ProfileDialog'
1111
import { PresenceForwardDialog } from './ProfileDialog/PresenceSettings/PresenceForwardDialog'
1212
import { SettingsShortcutDialog } from './ProfileDialog/SettingsSettings/SettingsShortcutDialog'
1313
import { SettingsDeviceDialog } from './ProfileDialog/SettingsSettings/SettingsDevicesDialog'
14+
import { SettingsIncomingCallsDialog } from './ProfileDialog/SettingsSettings/SettingsIncomingCallsDialog'
1415

1516
export interface NavbarProps {
1617
onClickAccount: () => void
@@ -23,6 +24,7 @@ export function Navbar({ onClickAccount }: NavbarProps): JSX.Element {
2324
const [isForwardDialogOpen] = useNethlinkData('isForwardDialogOpen')
2425
const [isShortcutDialogOpen] = useNethlinkData('isShortcutDialogOpen')
2526
const [isDeviceDialogOpen] = useNethlinkData('isDeviceDialogOpen')
27+
const [isIncomingCallsDialogOpen] = useNethlinkData('isIncomingCallsDialogOpen')
2628

2729
const [isProfileDialogOpen, setIsProfileDialogOpen] = useState(false)
2830

@@ -56,6 +58,7 @@ export function Navbar({ onClickAccount }: NavbarProps): JSX.Element {
5658
{isForwardDialogOpen && <PresenceForwardDialog />}
5759
{isShortcutDialogOpen && <SettingsShortcutDialog />}
5860
{isDeviceDialogOpen && <SettingsDeviceDialog />}
61+
{isIncomingCallsDialogOpen && <SettingsIncomingCallsDialog />}
5962
<ProfileDialog
6063
isOpen={isProfileDialogOpen}
6164
onClose={() => setIsProfileDialogOpen(false)}

src/renderer/src/components/Modules/NethVoice/BaseModule/ProfileDialog/SettingsSettings/SettingsBox.tsx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,15 @@ import { t } from 'i18next'
22
import {
33
faKeyboard as KeyboardIcon,
44
faHeadphones as DevicesIcon,
5+
faPhoneVolume as IncomingCallsIcon,
56
} from '@fortawesome/free-solid-svg-icons'
67
import { useNethlinkData } from '@renderer/store'
78
import { OptionElement } from '../OptionElement'
89

910
export function SettingsBox({ onClose }: { onClose?: () => void }) {
1011
const [, setIsShortcutDialogOpen] = useNethlinkData('isShortcutDialogOpen')
1112
const [, setIsDeviceDialogOpen] = useNethlinkData('isDeviceDialogOpen')
13+
const [, setIsIncomingCallsDialogOpen] = useNethlinkData('isIncomingCallsDialogOpen')
1214

1315
return (
1416
<div className="py-2">
@@ -30,6 +32,15 @@ export function SettingsBox({ onClose }: { onClose?: () => void }) {
3032
if (onClose) onClose()
3133
}}
3234
/>
35+
<OptionElement
36+
isSelected={false}
37+
icon={IncomingCallsIcon}
38+
label={t('Settings.IncomingCalls')}
39+
onClick={() => {
40+
setIsIncomingCallsDialogOpen(true)
41+
if (onClose) onClose()
42+
}}
43+
/>
3344
</div>
3445
)
3546
}

0 commit comments

Comments
 (0)