Replace free-text institution entry with a searchable bank picker

GET /api/banking/institutions lists the banks Enable Banking can connect
for a country (personal AIS, connectable consents only), with logos
restricted to https Enable Banking hosts to match the CSP image
allowlist. The connect form offers a filterable dropdown with bank
logos, falling back to the previous free-text input when the list is
unavailable or banking is not configured.
This commit is contained in:
Lars Nolden
2026-09-11 11:17:03 +02:00
parent a8722d58c3
commit 3df9bda989
9 changed files with 345 additions and 24 deletions
+65
View File
@@ -2031,6 +2031,71 @@ footer span:first-child {
.callback-details code {
font-size: 10px;
}
.bank-select {
position: relative;
}
.bank-select > input {
width: 100%;
padding-right: 40px;
}
.bank-selected-logo {
position: absolute;
right: 11px;
top: 50%;
transform: translateY(-50%);
width: 22px;
height: 22px;
object-fit: contain;
pointer-events: none;
}
.bank-options {
position: absolute;
z-index: 30;
top: calc(100% + 4px);
left: 0;
right: 0;
margin: 0;
padding: 4px;
list-style: none;
background: #fff;
border: 1px solid #dbe2ea;
border-radius: 8px;
box-shadow: 0 10px 30px #10223418;
max-height: 264px;
overflow-y: auto;
}
.bank-option {
display: flex;
width: 100%;
align-items: center;
gap: 10px;
padding: 8px 10px;
border: 0;
background: none;
border-radius: 6px;
cursor: pointer;
text-align: left;
font-size: 13px;
color: inherit;
}
.bank-option:hover,
.bank-option[aria-selected="true"] {
background: #f0f7f4;
}
.bank-option img,
.bank-option svg {
width: 22px;
height: 22px;
object-fit: contain;
flex: none;
color: var(--muted);
}
.bank-empty {
padding: 8px 10px;
color: var(--muted);
font-size: 12px;
}
.category-tree {
padding: 0 17px 23px;
}