Skip to content

Commit d82a21c

Browse files
committed
Merge remote-tracking branch 'origin/dev' into dev
2 parents 0b74aa4 + c2a44e3 commit d82a21c

25 files changed

+444
-334
lines changed

public/TrayToolbarIcon.png

11.7 KB
Loading

public/TrayToolbarIcon20x20.png

-759 Bytes
Binary file not shown.

public/TrayToolbarIconBlack.png

9.55 KB
Loading

public/TrayToolbarIconWhite.png

11 KB
Loading

src/main/classes/controllers/TrayController.ts

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { Menu, MenuItem, MenuItemConstructorOptions, Tray, app } from 'electron'
2-
import { join } from 'path'
1+
import { Menu, MenuItem, MenuItemConstructorOptions, Tray, app, nativeImage } from 'electron'
2+
import path, { join } from 'path'
33
import { AccountController } from './AccountController'
44
import { LoginController } from './LoginController'
55
import { NethLinkController } from './NethLinkController'
@@ -14,8 +14,22 @@ export class TrayController {
1414
static instance: TrayController
1515
constructor() {
1616
TrayController.instance = this
17+
let image
1718

18-
this.tray = new Tray(join(__dirname, '../../public/TrayToolbarIcon20x20.png'))
19+
//TODO Controllare con il process
20+
if (process.platform === 'win32' || process.platform === 'linux') {
21+
image = nativeImage.createFromPath(
22+
path.join(__dirname, '../../public/TrayToolbarIconWhite.png')
23+
).resize({ width: 18, height: 18 });
24+
} else {
25+
image = nativeImage.createFromPath(
26+
path.join(__dirname, '../../public/TrayToolbarIconBlack.png')
27+
).resize({ width: 18, height: 18 });
28+
}
29+
30+
31+
32+
this.tray = new Tray(image)
1933
this.tray.setIgnoreDoubleClickEvents(true)
2034
this.tray.on('click', () => {
2135
if (this.enableClick) {

src/renderer/src/components/AddToPhonebookBox.tsx

Lines changed: 42 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,18 @@ export function AddToPhonebookBox({
2727
const submitButtonRef = useRef<HTMLButtonElement>(null)
2828
const baseSchema = z.object({
2929
privacy: z.string(),
30-
extension: z.string().trim().regex(/^[0-9*#+]*$/, 'This is not a phone number'),
31-
workphone: z.string().trim().regex(/^[0-9*#+]*$/, 'This is not a phone number'),
32-
cellphone: z.string().trim().regex(/^[0-9*#+]*$/, 'This is not a phone number'),
30+
extension: z
31+
.string()
32+
.trim()
33+
.regex(/^[0-9*#+]*$/, 'This is not a phone number'),
34+
workphone: z
35+
.string()
36+
.trim()
37+
.regex(/^[0-9*#+]*$/, 'This is not a phone number'),
38+
cellphone: z
39+
.string()
40+
.trim()
41+
.regex(/^[0-9*#+]*$/, 'This is not a phone number'),
3342
workemail: z.string(),
3443
notes: z.string()
3544
})
@@ -61,6 +70,7 @@ export function AddToPhonebookBox({
6170
register,
6271
watch,
6372
handleSubmit,
73+
setFocus,
6474
setValue,
6575
reset,
6676
trigger,
@@ -92,30 +102,33 @@ export function AddToPhonebookBox({
92102
}
93103

94104
useEffect(() => {
95-
reset()
96105
setValue('privacy', 'public')
97106
setValue('type', 'person')
98107

99108
if (searchText !== undefined) {
100109
if (validatePhoneNumber(searchText)) {
101110
setValue('extension', searchText)
111+
setTimeout(() => setFocus('name'), 10)
102112
} else {
103113
setValue('name', searchText)
114+
setTimeout(() => setFocus('extension'), 10)
104115
}
105116
}
106117
//Caso in cui ho selezionato da create in MISSEDCALL
107118
if (selectedCompany) {
108119
setValue('company', selectedCompany)
120+
setTimeout(() => setFocus('extension'), 10)
109121
}
110122
if (selectedNumber) {
111123
setValue('extension', selectedNumber)
124+
setTimeout(() => setFocus('name'), 10)
112125
}
113126
}, [])
114127

115128
function handleSave(data: ContactType) {
116129
//NETHVOICE usa il valore '-' quando si inserisce una company che e' priva di nome
117130
//data.name === '' puo' essere vera solo nel caso in cui si inserisce una company
118-
setIsLoading(true);
131+
setIsLoading(true)
119132
//Aggiunto un timeout per fare vedere lo spinner in quanto la chiamata e' troppo veloce
120133
setTimeout(() => {
121134
if (watchType === 'company') {
@@ -130,22 +143,24 @@ export function AddToPhonebookBox({
130143
setIsLoading(false)
131144
reset()
132145
})
133-
}, 300);
146+
}, 300)
134147
}
135148

136149
return (
137150
<div className="w-full h-full">
138-
<div className="flex justify-between items-center pb-4 border border-t-0 border-r-0 border-l-0 dark:border-gray-500 border-gray-300 max-h-[28px] px-5">
139-
<h1 className="font-medium text-[14px] leading-5">{t('Phonebook.Add to Phonebook')}</h1>
151+
<div className="flex justify-between items-center pb-4 border border-t-0 border-r-0 border-l-0 dark:border-borderDark border-borderLight max-h-[28px] px-5">
152+
<h1 className="font-medium text-[14px] leading-5 dark:text-titleDark text-titleLight">
153+
{t('Phonebook.Add to Phonebook')}
154+
</h1>
140155
</div>
141156
<form
142-
className="flex flex-col gap-4 p-2 h-full overflow-y-auto max-h-[245px] px-5"
157+
className="flex flex-col gap-5 p-2 h-full overflow-y-auto max-h-[240px] px-5"
143158
onSubmit={(e) => {
144159
e.preventDefault()
145160
handleSubmit(onSubmitForm)(e)
146161
}}
147162
>
148-
<label className="flex flex-col gap-2 dark:text-gray-50 text-gray-900">
163+
<label className="flex flex-col gap-2 dark:text-titleDark text-titleLight">
149164
<p className="font-medium text-[14px] leading-5">{t('Phonebook.Visibility')}</p>
150165
<div className="flex flex-row gap-8 items-center">
151166
<div className="flex flex-row gap-2 items-center">
@@ -155,7 +170,7 @@ export function AddToPhonebookBox({
155170
type="radio"
156171
value="public"
157172
name="visibility"
158-
className="h-4 w-4 dark:text-blue-500 text-blue-700 dark:focus:ring-blue-200 focus:ring-blue-500 dark:focus:ring-offset-gray-900 focus:ring-offset-gray-50"
173+
className="h-4 w-4 dark:text-textBlueDark text-textBlueLight dark:focus:ring-ringBlueDark focus:ring-ringBlueLight focus:ring-offset-ringOffsetLight dark:focus:ring-offset-ringOffsetDark"
159174
/>
160175
<label
161176
htmlFor="public"
@@ -171,7 +186,7 @@ export function AddToPhonebookBox({
171186
type="radio"
172187
value="private"
173188
name="visibility"
174-
className="h-4 w-4 dark:text-blue-500 text-blue-700 dark:focus:ring-blue-200 focus:ring-blue-500 dark:focus:ring-offset-gray-900 focus:ring-offset-gray-50"
189+
className="h-4 w-4 dark:text-textBlueDark text-textBlueLight dark:focus:ring-ringBlueDark focus:ring-ringBlueLight dark:focus:ring-offset-ringOffsetDark focus:ring-offset-ringOffsetLight"
175190
/>
176191
<label
177192
htmlFor="private"
@@ -183,7 +198,7 @@ export function AddToPhonebookBox({
183198
</div>
184199
</label>
185200

186-
<label className="flex flex-col gap-2 dark:text-gray-50 text-gray-900">
201+
<label className="flex flex-col gap-2 dark:text-titleDark text-titleLight">
187202
<p className="font-medium text-[14px] leading-5">{t('Phonebook.Type')}</p>
188203
<div className="flex flex-row gap-8 items-center">
189204
<div className="flex flex-row gap-2 items-center">
@@ -193,7 +208,7 @@ export function AddToPhonebookBox({
193208
type="radio"
194209
value="person"
195210
name="type"
196-
className="h-4 w-4 dark:text-blue-500 text-blue-700 dark:focus:ring-blue-200 focus:ring-blue-500 dark:focus:ring-offset-gray-900 focus:ring-offset-gray-50"
211+
className="h-4 w-4 dark:text-textBlueDark text-textBlueLight dark:focus:ring-ringBlueDark focus:ring-ringBlueLight dark:focus:ring-offset-ringOffsetDark focus:ring-offset-ringOffsetLight"
197212
/>
198213
<label
199214
htmlFor="person"
@@ -209,7 +224,7 @@ export function AddToPhonebookBox({
209224
type="radio"
210225
value="company"
211226
name="type"
212-
className="h-4 w-4 dark:text-blue-500 text-blue-700 dark:focus:ring-blue-200 focus:ring-blue-500 dark:focus:ring-offset-gray-900 focus:ring-offset-gray-50"
227+
className="h-4 w-4 dark:text-textBlueDark text-textBlueLight dark:focus:ring-ringBlueDark focus:ring-ringBlueLight dark:focus:ring-offset-ringOffsetDark focus:ring-offset-ringOffsetLight"
213228
/>
214229
<label
215230
htmlFor="company"
@@ -236,7 +251,7 @@ export function AddToPhonebookBox({
236251
handleSubmit(onSubmitForm)(e)
237252
}
238253
}}
239-
className={`font-normal text-[14px] leading-5 ${errors.name?.message ? `mb-2` : ``} dark:focus:ring-2 dark:focus:ring-offset-2 dark:focus:ring-blue-200 dark:focus:ring-offset-gray-900 focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 focus:ring-offset-white`}
254+
className="font-normal text-[14px] leading-5"
240255
/>
241256
</>
242257
) : null}
@@ -253,16 +268,13 @@ export function AddToPhonebookBox({
253268
handleSubmit(onSubmitForm)(e)
254269
}
255270
}}
256-
className={`font-normal text-[14px] leading-5 ${errors.company?.message ? `mb-2` : ``} dark:focus:ring-2 dark:focus:ring-offset-2 dark:focus:ring-blue-200 dark:focus:ring-offset-gray-900 focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 focus:ring-offset-white`}
271+
className="font-normal text-[14px] leading-5"
257272
/>
258273

259274
<TextInput
260275
{...register('extension')}
261276
type="tel"
262277
minLength={3}
263-
// onChange={(e) => {
264-
// setValue('extension', e.target.value.replace(/[^\d*#+]/g, ''))
265-
// }}
266278
label={t('Phonebook.Phone number') as string}
267279
helper={errors.extension?.message || undefined}
268280
error={!!errors.extension?.message}
@@ -273,16 +285,13 @@ export function AddToPhonebookBox({
273285
handleSubmit(onSubmitForm)(e)
274286
}
275287
}}
276-
className="font-normal text-[14px] leading-5 dark:focus:ring-2 dark:focus:ring-offset-2 dark:focus:ring-blue-200 dark:focus:ring-offset-gray-900 focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 focus:ring-offset-white"
288+
className="font-normal text-[14px] leading-5"
277289
/>
278290

279291
<TextInput
280292
{...register('workphone')}
281293
type="tel"
282294
minLength={3}
283-
// onChange={(e) => {
284-
// setValue('workphone', e.target.value.replace(/[^\d*#+]/g, ''))
285-
// }}
286295
label={t('Phonebook.Work phone') as string}
287296
helper={errors.workphone?.message || undefined}
288297
error={!!errors.workphone?.message}
@@ -293,16 +302,13 @@ export function AddToPhonebookBox({
293302
handleSubmit(onSubmitForm)(e)
294303
}
295304
}}
296-
className="font-normal text-[14px] leading-5 dark:focus:ring-2 dark:focus:ring-offset-2 dark:focus:ring-blue-200 dark:focus:ring-offset-gray-900 focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 focus:ring-offset-white"
305+
className="font-normal text-[14px] leading-5"
297306
/>
298307

299308
<TextInput
300309
{...register('cellphone')}
301310
type="tel"
302311
minLength={3}
303-
// onChange={(e) => {
304-
// setValue('cellphone', e.target.value.replace(/[^\d*#+]/g, ''))
305-
// }}
306312
label={t('Phonebook.Mobile phone') as string}
307313
helper={errors.cellphone?.message || undefined}
308314
error={!!errors.cellphone?.message}
@@ -313,7 +319,7 @@ export function AddToPhonebookBox({
313319
handleSubmit(onSubmitForm)(e)
314320
}
315321
}}
316-
className="font-normal text-[14px] leading-5 dark:focus:ring-2 dark:focus:ring-offset-2 dark:focus:ring-blue-200 dark:focus:ring-offset-gray-900 focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 focus:ring-offset-white"
322+
className="font-normal text-[14px] leading-5"
317323
/>
318324

319325
<TextInput
@@ -327,7 +333,7 @@ export function AddToPhonebookBox({
327333
handleSubmit(onSubmitForm)(e)
328334
}
329335
}}
330-
className="font-normal text-[14px] leading-5 dark:focus:ring-2 dark:focus:ring-offset-2 dark:focus:ring-blue-200 dark:focus:ring-offset-gray-900 focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 focus:ring-offset-white"
336+
className="font-normal text-[14px] leading-5"
331337
/>
332338

333339
<TextInput
@@ -341,32 +347,23 @@ export function AddToPhonebookBox({
341347
handleSubmit(onSubmitForm)(e)
342348
}
343349
}}
344-
className="font-normal text-[14px] leading-5 dark:focus:ring-2 dark:focus:ring-offset-2 dark:focus:ring-blue-200 dark:focus:ring-offset-gray-900 focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 focus:ring-offset-white"
350+
className="font-normal text-[14px] leading-5"
345351
/>
346352

347353
<div className="flex flex-row gap-4 justify-end mb-1">
348-
<Button
349-
variant="ghost"
350-
onClick={() => onCancel()}
351-
disabled={isLoading}
352-
className="dark:focus:ring-2 dark:focus:ring-offset-2 dark:focus:ring-blue-200 dark:focus:ring-offset-gray-900 focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 focus:ring-offset-white"
353-
>
354-
<p className="dark:text-blue-500 text-blue-700 font-medium text-[14px] leading-5">
354+
<Button variant="ghost" onClick={() => onCancel()} disabled={isLoading}>
355+
<p className="dark:text-textBlueDark text-textBlueLight font-medium text-[14px] leading-5">
355356
{t('Common.Cancel')}
356357
</p>
357358
</Button>
358-
<Button
359-
type="submit"
360-
ref={submitButtonRef}
361-
className="gap-3 dark:bg-blue-500 bg-blue-700 dark:hover:bg-blue-300 hover:bg-blue-800 dark:focus:ring-2 dark:focus:ring-offset-2 dark:focus:ring-blue-200 dark:focus:ring-offset-gray-900 focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 focus:ring-offset-white"
362-
>
363-
<p className="dark:text-gray-950 text-gray-50 font-medium text-[14px] leading-5">
359+
<Button type="submit" ref={submitButtonRef} className="gap-3">
360+
<p className="dark:text-titleLight text-titleDark font-medium text-[14px] leading-5">
364361
{t('Common.Save')}
365362
</p>
366363
{isLoading && (
367364
<FontAwesomeIcon
368365
icon={LoadingIcon}
369-
className="dark:text-gray-900 text-gray-50 animate-spin"
366+
className="dark:text-titleLight text-titleDark animate-spin"
370367
/>
371368
)}
372369
</Button>

src/renderer/src/components/DisplayedAccountLogin.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ export function DisplayedAccountLogin({
1919
<div
2020
onClick={() => handleClick?.()}
2121
className={classNames(
22-
'w-full flex flex-row gap-7 items-center justify-start bg-transparent h-20 rounded-lg text-gray-900 dark:text-gray-50 cursor-pointer',
23-
handleClick ? 'hover:bg-gray-200 dark:hover:bg-gray-800' : ''
22+
'w-full flex flex-row gap-7 items-center justify-start bg-transparent h-20 rounded-lg text-titleLight dark:text-titleDark cursor-pointer',
23+
handleClick ? 'hover:bg-hoverLight dark:hover:bg-hoverDark' : ''
2424
)}
2525
>
2626
<div className="ml-5 w-12 h-12 rounded-full overflow-hidden">

src/renderer/src/components/MissedCall.tsx

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -89,14 +89,14 @@ export function MissedCall({
8989
/>
9090
)}
9191
</div>
92-
<div className="flex flex-col gap-1 dark:text-gray-50 text-gray-900">
92+
<div className="flex flex-col gap-1 dark:text-titleDark text-titleLight">
9393
<p className="font-medium text-[14px] leading-5">{truncate(getCallName(call), 15)}</p>
9494
<div className="flex flex-row gap-2 items-center">
9595
<MissedCallIcon />
9696
<NumberCaller
9797
number={getCallExt(call)}
9898
disabled={!isCallsEnabled}
99-
className={"dark:text-blue-500 text-blue-700 font-normal text-[14px] leading-5 hover:underline"}
99+
className={"dark:text-textBlueDark text-textBlueLight font-normal text-[14px] leading-5 hover:underline"}
100100
>
101101
{call.cnum}
102102
</NumberCaller>
@@ -148,14 +148,16 @@ export function MissedCall({
148148
{showCreateButton && (
149149
<Button
150150
variant="ghost"
151-
className="flex gap-3 items-center py-2 px-3 border dark:border-gray-700 border-gray-200 ml-auto dark:focus:ring-2 focus:ring-2 dark:focus:ring-blue-200 focus:ring-blue-500"
151+
className="flex gap-3 items-center py-2 px-3 border dark:border-borderDark border-borderLight ml-auto"
152152
onClick={() => handleSelectedMissedCall(call.cnum, call.ccompany)}
153153
>
154154
<FontAwesomeIcon
155-
className="text-base dark:text-blue-500 text-blue-700"
155+
className="text-base dark:text-textBlueDark text-textBlueLight"
156156
icon={AddUserIcon}
157157
/>
158-
<p className="dark:text-blue-500 text-blue-700 font-medium">{t('SpeedDial.Create')}</p>
158+
<p className="dark:text-textBlueDark text-textBlueLight font-medium">
159+
{t('SpeedDial.Create')}
160+
</p>
159161
</Button>
160162
)}
161163
</div>

src/renderer/src/components/MissedCallsBox.tsx

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,20 @@ export function MissedCallsBox({
2626
return (
2727
<>
2828
<div className="flex flex-col h-full">
29-
<div className="flex justify-between items-center pb-4 border border-t-0 border-r-0 border-l-0 dark:border-gray-700 border-gray-200 max-h-[28px] px-5 mt-3">
30-
<h1 className="font-medium text-[14px] leading-5">{title}</h1>
29+
<div className="flex justify-between items-center pb-4 border border-t-0 border-r-0 border-l-0 dark:border-borderDark border-borderLight max-h-[28px] px-5 mt-3">
30+
<h1 className="font-medium text-[14px] leading-5 dark:text-titleDark text-titleLight">
31+
{title}
32+
</h1>
3133
<Button
3234
variant="ghost"
33-
className="flex gap-3 items-center pt-2 pr-1 pb-2 pl-1 hover:bg-gray-200 dark:hover:bg-gray-800 dark:focus:ring-2 focus:ring-2 dark:focus:ring-blue-200 focus:ring-blue-500"
35+
className="flex gap-3 items-center pt-2 pr-1 pb-2 pl-1"
3436
onClick={viewAllMissedCalls}
3537
>
3638
<FontAwesomeIcon
37-
className="text-base dark:text-blue-500 text-blue-700"
39+
className="text-base dark:text-textBlueDark text-textBlueLight"
3840
icon={ShowMissedCallIcon}
3941
/>
40-
<p className="dark:text-blue-500 text-blue-700 font-medium text-[14px] leading-5">
42+
<p className="dark:text-textBlueDark text-textBlueLight font-medium text-[14px] leading-5">
4143
{t('Common.View all')}
4244
</p>
4345
</Button>
@@ -46,12 +48,12 @@ export function MissedCallsBox({
4648
{missedCallsIn.map((call, idx) => {
4749
return (
4850
<div
49-
className={`${idx === missedCallsIn.length - 1 ? `` : `border-b dark:border-gray-700 border-gray-200`}`}
51+
className={`${idx === missedCallsIn.length - 1 ? `` : `border-b dark:border-borderDark border-borderLight`}`}
5052
key={idx}
5153
>
5254
<MissedCall
5355
call={call}
54-
className="dark:hover:bg-gray-800 hover:bg-gray-200"
56+
className="dark:hover:bg-hoverDark hover:bg-hoverLight"
5557
handleSelectedMissedCall={handleSelectedMissedCall}
5658
/>
5759
</div>

0 commit comments

Comments
 (0)