Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
5aef92c
clean removed dependency param from organizations endpoint
dev-rminds Jan 14, 2026
366ba62
Merge branch 'develop' into optimization.loaders
dev-rminds Jan 14, 2026
352168f
Bump diff in the npm_and_yarn group across 1 directory
dependabot[bot] Jan 15, 2026
1a69870
fix employee and reservations page double api fetch
dev-rminds Jan 15, 2026
0c6c5af
voucher payouts - round 2
dev-rminds Jan 19, 2026
54150ab
refactoring and cleanup
dev-rminds Jan 19, 2026
e5e40de
add translations for prefill children group title
ateamcms Jan 19, 2026
9d998d3
update translations
dev-rminds Jan 20, 2026
b0b9fb7
Merge pull request #926 from teamforus/dependabot/npm_and_yarn/npm_an…
RobinMeles Jan 20, 2026
491c8c3
profile bank accounts - cross-linking
dev-rminds Jan 20, 2026
ab045cf
voucher payouts formula feature
dev-rminds Jan 20, 2026
b50894e
add all bank account sources to sponsor create payout modal
dev-rminds Jan 21, 2026
d7c8a00
Merge pull request #940 from teamforus/master
RobinMeles Jan 21, 2026
d958dfc
Merge branch 'develop' into optimization.loaders
RobinMeles Jan 22, 2026
ab95a7d
fix reservation state label
ateamcms Jan 22, 2026
4f43afe
Merge branch 'develop' into fixes.reservation-state-label
ateamcms Jan 22, 2026
ca52841
Bump lodash in the npm_and_yarn group across 1 directory
dependabot[bot] Jan 22, 2026
8f8a7b7
Merge pull request #935 from teamforus/feature.add-translations-for-p…
RobinMeles Jan 22, 2026
840f937
add payout bank account source to voucher direct payment modal for sp…
dev-rminds Jan 22, 2026
a5235af
Merge pull request #941 from teamforus/fixes.reservation-state-label
RobinMeles Jan 22, 2026
19aec5f
Merge branch 'develop' into dependabot/npm_and_yarn/npm_and_yarn-f356…
RobinMeles Jan 22, 2026
4646594
Merge pull request #942 from teamforus/dependabot/npm_and_yarn/npm_an…
RobinMeles Jan 22, 2026
b023ad6
Merge pull request #925 from teamforus/optimization.loaders
RobinMeles Jan 22, 2026
7ab2a6e
Merge pull request #936 from teamforus/voucher-payouts.round-3
RobinMeles Jan 22, 2026
402346a
merge voucher-payouts.round-2 into epic.cleanup-round-1 and fix confl…
dev-rminds Jan 22, 2026
cd66678
fix dusk tests error
dev-rminds Jan 22, 2026
fcc462f
Merge pull request #931 from teamforus/epic.cleanup-round-1
RobinMeles Jan 23, 2026
2bfab9c
Merge branch 'develop' into voucher-payouts.round-2
RobinMeles Jan 23, 2026
2ac41ee
Merge pull request #930 from teamforus/voucher-payouts.round-2
RobinMeles Jan 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 9 additions & 8 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@
"clean-webpack-plugin": "^4.0.0",
"date-fns": "^4.1.0",
"deepl-node": "^1.15.0",
"diff": "^8.0.2",
"diff": "^8.0.3",
"dompurify": "^3.2.4",
"easyqrcodejs": "^4.4.13",
"file-saver": "^2.0.5",
Expand All @@ -106,7 +106,7 @@
"jquery": "^3.6.3",
"jszip": "^3.10.1",
"libphonenumber-js": "^1.10.41",
"lodash": "^4.17.21",
"lodash": "^4.17.23",
"papaparse": "^5.4.1",
"pdfjs-dist": "5.1",
"qrcode.react": "^4.1.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,10 +77,6 @@
.checkbox-label {
font: 600 13px/16px var(--base-font);
color: #646f79;

&.active {
color: #009ef4;
}
}

.block-option-count {
Expand All @@ -92,6 +88,10 @@
font: inherit;
color: #646f79;
}

&.block-option-active .checkbox-label {
color: #009ef4;
}
}

.block-option-empty {
Expand All @@ -108,6 +108,10 @@

.card-section {
border-bottom-color: var(--border-color);

&>.financial-chart {
height: 350px;
}
}

.financial-totals {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import React, { useCallback, useEffect, useState } from 'react';
import classNames from 'classnames';
import Announcement from '../../../props/models/Announcement';

export const Announcements = ({ announcements }: { announcements: Array<Announcement> }) => {
Expand Down Expand Up @@ -43,9 +44,15 @@ export const Announcements = ({ announcements }: { announcements: Array<Announce
{listActive?.map((announcement) => (
<div
key={announcement.id}
className={`announcement announcement-${announcement.type} ${
announcement.dismissed ? ' dismissed' : ''
}`}>
className={classNames(
'announcement',
announcement.type === 'warning' && 'announcement-warning',
announcement.type === 'danger' && 'announcement-danger',
announcement.type === 'success' && 'announcement-success',
announcement.type === 'primary' && 'announcement-primary',
announcement.type === 'default' && 'announcement-default',
announcement.dismissed && 'dismissed',
)}>
<div className="announcement-wrapper">
<div className="title">{announcement.title}</div>
<div className="description">
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import React from 'react';
import classNames from 'classnames';
import useEnvData from '../../../hooks/useEnvData';
import useAssetUrl from '../../../hooks/useAssetUrl';

Expand All @@ -9,7 +10,7 @@ export default function AppLinks({
showIosButton = true,
showAndroidButton = true,
}: {
type?: string;
type?: 'lg';
iosId?: string;
androidId?: string;
showIosButton?: boolean;
Expand All @@ -19,7 +20,7 @@ export default function AppLinks({
const assetUrl = useAssetUrl();

return (
<div className={`block block-app_links ${type ? `block-app_links-${type}` : ''}`}>
<div className={classNames('block', 'block-app_links', type === 'lg' && 'block-app_links-lg')}>
{showAndroidButton && (
<a
href={envData?.config?.android_link}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
import React from 'react';
import classNames from 'classnames';
import useEnvData from '../../../hooks/useEnvData';

export default function Auth2FAInfoBox({ className = '' }: { className?: string }) {
const envData = useEnvData();

return (
<div className={`block block-info-box ${className}`}>
<div className={classNames('block', 'block-info-box', className)}>
<div className="info-box-icon mdi mdi-information-outline" />
{envData.client_type == 'sponsor' && (
<div className="info-box-content">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import Organization from '../../../props/models/Organization';
import useConfigurableTable from '../../pages/vouchers/hooks/useConfigurableTable';
import TableTopScroller from '../tables/TableTopScroller';
import { FilterModel } from '../../../modules/filter_next/types/FilterParams';
import FormGroup from '../forms/elements/FormGroup';

export default function BlockCardEmails({
organization,
Expand Down Expand Up @@ -118,15 +119,18 @@ export default function BlockCardEmails({
<div className="card-header-filters">
<div className="block block-inline-filters">
<div className="form">
<div className="form-group">
<input
type="search"
className="form-control"
placeholder="Zoeken"
value={filterValues.q}
onChange={(e) => filterUpdate({ q: e.target.value })}
/>
</div>
<FormGroup
input={(id) => (
<input
type="search"
id={id}
className="form-control"
placeholder="Zoeken"
value={filterValues.q}
onChange={(e) => filterUpdate({ q: e.target.value })}
/>
)}
/>
</div>
</div>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,25 @@ export default function BlockLabelTabs<t = string>({
value,
setValue,
tabs,
size = 'sm',
}: {
value: t;
setValue: (state: t) => void;
tabs: Array<{ value: t; label: string }>;
tabs: Array<{ value: t; label: React.ReactNode; dusk?: string }>;
size?: 'sm' | null;
}) {
return (
<div className="block block-label-tabs">
<div className="label-tab-set">
{tabs.map((tab, index) => (
<div
key={index}
className={classNames(`label-tab label-tab-sm`, value == tab.value && 'active')}
data-dusk={tab.dusk}
className={classNames(
'label-tab',
size === 'sm' && 'label-tab-sm',
value == tab.value && 'active',
)}
onClick={() => setValue(tab.value)}>
{tab.label}
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@ export default function BlockReimbursementCategories({
</div>

{categories?.meta.total > 0 && (
<div className={`card-section ${compact ? 'card-section-narrow' : ''}`}>
<div className={classNames('card-section', compact && 'card-section-narrow')}>
<Paginator
meta={categories.meta}
filters={filterValues}
Expand Down
22 changes: 18 additions & 4 deletions react/src/dashboard/components/elements/empty-card/EmptyCard.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import React, { Fragment, ReactNode, useMemo } from 'react';
import classNames from 'classnames';
import { NavLink } from 'react-router';

interface EmptyButtonType {
to?: string;
type?: string;
type?: 'default' | 'primary' | 'danger';
icon?: string;
text?: string;
dusk?: string;
Expand All @@ -17,7 +18,7 @@ export default function EmptyCard({
imageIcon,
imageIconImg,
imageIconSvg,
textAlign,
textAlign = 'center',
button = null,
buttons = [],
type = 'card',
Expand Down Expand Up @@ -54,7 +55,15 @@ export default function EmptyCard({

return (
<Wrapper>
<div className={`block block-empty text-${textAlign || 'center'}`} data-dusk="emptyCard">
<div
className={classNames(
'block',
'block-empty',
textAlign === 'left' && 'text-left',
textAlign === 'right' && 'text-right',
textAlign === 'center' && 'text-center',
)}
data-dusk="emptyCard">
{imageIconImg && (
<div className="empty-icon">
<img className="empty-icon-img empty-icon-img-border" src={imageIconImg} alt={''} />
Expand Down Expand Up @@ -94,7 +103,12 @@ export default function EmptyCard({
key={index}
to={button.to}
onClick={button.onClick}
className={`button button-${button.type || 'default'}`}
className={classNames(
'button',
(!button.type || button.type === 'default') && 'button-default',
button.type === 'primary' && 'button-primary',
button.type === 'danger' && 'button-danger',
)}
data-dusk={button.dusk || 'btnEmptyBlock'}>
{button.icon && (!button.iconPosition || button.iconPosition == 'start') && (
<em className={`mdi mdi-${button.icon} icon-start`} />
Expand Down
Loading