@kiva/kv-components 3.18.0 → 3.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [3.19.0](https://github.com/kiva/kv-ui-elements/compare/@kiva/kv-components@3.18.0...@kiva/kv-components@3.19.0) (2023-05-09)
7
+
8
+
9
+ ### Features
10
+
11
+ * loan card CTA fixes needed for home page ([fc1c9f8](https://github.com/kiva/kv-ui-elements/commit/fc1c9f858aeae620f6cfea74da8d15ae859afa3c))
12
+
13
+
14
+
15
+
16
+
6
17
  # [3.18.0](https://github.com/kiva/kv-ui-elements/compare/@kiva/kv-components@3.17.0...@kiva/kv-components@3.18.0) (2023-05-05)
7
18
 
8
19
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kiva/kv-components",
3
- "version": "3.18.0",
3
+ "version": "3.19.0",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -75,5 +75,5 @@
75
75
  "optional": true
76
76
  }
77
77
  },
78
- "gitHead": "68db3fee0d19c1708e9ac97cf69e04ca97fadd62"
78
+ "gitHead": "b816407effcdecfc0487c5bfb91838f9c4f25a85"
79
79
  }
@@ -1,6 +1,5 @@
1
1
  <template>
2
2
  <div
3
- :id="`${loanId}-loan-card`"
4
3
  class="tw-flex tw-flex-col tw-bg-white tw-rounded tw-w-full tw-pb-1"
5
4
  :class="{ 'tw-p-1': !largeCard }"
6
5
  style="box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);"
@@ -29,8 +28,10 @@
29
28
  data-testid="loan-card-bookmark"
30
29
  @toggle-bookmark="$emit('toggle-bookmark')"
31
30
  />
32
- <router-link
33
- :to="customLoanDetails ? '' : `/lend/${loanId}`"
31
+ <component
32
+ :is="tag"
33
+ :to="readMorePath"
34
+ :href="readMorePath"
34
35
  class="tw-flex"
35
36
  aria-label="Borrower image"
36
37
  @click="clickReadMore('Photo')"
@@ -74,12 +75,14 @@
74
75
  {{ formattedLocation }}
75
76
  </p>
76
77
  </div>
77
- </router-link>
78
+ </component>
78
79
  </div>
79
80
 
80
81
  <!-- Loan tag -->
81
- <router-link
82
- :to="customLoanDetails ? '' : `/lend/${loanId}`"
82
+ <component
83
+ :is="tag"
84
+ :to="readMorePath"
85
+ :href="readMorePath"
83
86
  class="tw-flex hover:tw-no-underline focus:tw-no-underline"
84
87
  :class="{ 'tw-px-1': largeCard }"
85
88
  aria-label="Loan tag"
@@ -90,10 +93,12 @@
90
93
  :loan="loan"
91
94
  :kv-track-function="kvTrackFunction"
92
95
  />
93
- </router-link>
96
+ </component>
94
97
 
95
- <router-link
96
- :to="customLoanDetails ? '' : `/lend/${loanId}`"
98
+ <component
99
+ :is="tag"
100
+ :to="readMorePath"
101
+ :href="readMorePath"
97
102
  class="loan-card-use tw-text-primary"
98
103
  aria-label="Loan use"
99
104
  @click="clickReadMore('Use')"
@@ -106,11 +111,13 @@
106
111
  :class="{ 'tw-px-1': largeCard }"
107
112
  style="height: 5.5rem;"
108
113
  >
109
- <kv-loading-placeholder
114
+ <div
110
115
  v-for="(_n, i) in [...Array(4)]"
111
116
  :key="i"
112
- class="tw-h-2 tw-mb-1 tw-w-1.5"
113
- />
117
+ class="tw-h-2 tw-mb-1"
118
+ >
119
+ <kv-loading-placeholder />
120
+ </div>
114
121
  </div>
115
122
  <div v-else>
116
123
  <kv-loan-use
@@ -124,7 +131,7 @@
124
131
  />
125
132
  </div>
126
133
  </div>
127
- </router-link>
134
+ </component>
128
135
  </div>
129
136
 
130
137
  <!-- Loan call outs -->
@@ -163,9 +170,11 @@
163
170
  />
164
171
  </div>
165
172
 
166
- <router-link
173
+ <component
174
+ :is="tag"
167
175
  v-if="unreservedAmount > 0"
168
- :to="customLoanDetails ? '' : `/lend/${loanId}`"
176
+ :to="readMorePath"
177
+ :href="readMorePath"
169
178
  class="loan-card-progress tw-mt-1"
170
179
  aria-label="Loan progress"
171
180
  @click="clickReadMore('Progress')"
@@ -176,7 +185,7 @@
176
185
  :progress-percent="fundraisingPercent"
177
186
  class="tw-text-black"
178
187
  />
179
- </router-link>
188
+ </component>
180
189
 
181
190
  <!-- CTA Button -->
182
191
  <kv-loading-placeholder
@@ -195,6 +204,7 @@
195
204
  :kv-track-function="kvTrackFunction"
196
205
  :show-view-loan="showViewLoan"
197
206
  :custom-loan-details="customLoanDetails"
207
+ :external-links="externalLinks"
198
208
  class="tw-mt-auto"
199
209
  :class="{ 'tw-w-full' : unreservedAmount <= 0 }"
200
210
  @add-to-basket="$emit('add-to-basket', $event)"
@@ -232,7 +242,7 @@ export default {
232
242
  props: {
233
243
  loanId: {
234
244
  type: Number,
235
- required: true,
245
+ default: undefined,
236
246
  },
237
247
  loan: {
238
248
  type: Object,
@@ -290,6 +300,10 @@ export default {
290
300
  type: Boolean,
291
301
  default: false,
292
302
  },
303
+ externalLinks: {
304
+ type: Boolean,
305
+ default: false,
306
+ },
293
307
  },
294
308
  data() {
295
309
  return {
@@ -297,8 +311,14 @@ export default {
297
311
  };
298
312
  },
299
313
  computed: {
314
+ tag() {
315
+ return this.externalLinks ? 'a' : 'router-link';
316
+ },
317
+ readMorePath() {
318
+ return this.customLoanDetails ? '' : `/lend/${this.loanId}`;
319
+ },
300
320
  isLoading() {
301
- return !this.loan;
321
+ return !this.loanId || !this.loan;
302
322
  },
303
323
  cardWidth() {
304
324
  return this.useFullWidth ? '100%' : '374px';
@@ -32,10 +32,6 @@ export default {
32
32
  type: Boolean,
33
33
  default: false,
34
34
  },
35
- isAdding: {
36
- type: Boolean,
37
- default: false,
38
- },
39
35
  },
40
36
  computed: {
41
37
  amountValue() {
@@ -55,10 +51,6 @@ export default {
55
51
 
56
52
  return str;
57
53
  },
58
- buttonState() {
59
- if (this.isAdding) return 'loading';
60
- return '';
61
- },
62
54
  },
63
55
  methods: {
64
56
  addToBasket(event) {
package/vue/KvLendCta.vue CHANGED
@@ -1,9 +1,10 @@
1
1
  <template>
2
2
  <div>
3
3
  <kv-ui-button
4
- v-if="showViewLoan"
4
+ v-if="showViewLoan && !isInBasket"
5
5
  :state="`${allSharesReserved ? 'disabled' : ''}`"
6
- :to="customLoanDetails ? '' : `/lend/${loanId}`"
6
+ :to="!externalLinks ? readMorePath : undefined"
7
+ :href="externalLinks ? readMorePath : undefined"
7
8
  class="tw-mb-0"
8
9
  @click="$emit('show-loan-details')"
9
10
  >
@@ -93,11 +94,12 @@
93
94
 
94
95
  <!-- Continue to checkout button -->
95
96
  <kv-ui-button
96
- v-if="state === 'basketed'"
97
+ v-if="isInBasket"
97
98
  variant="secondary"
98
99
  class="tw-inline-flex tw-flex-1"
99
100
  data-testid="bp-lend-cta-checkout-button"
100
- to="/basket"
101
+ :to="!externalLinks ? '/basket' : undefined"
102
+ :href="externalLinks ? '/basket' : undefined"
101
103
  @click.native="clickCheckout"
102
104
  >
103
105
  Checkout now
@@ -171,6 +173,10 @@ export default {
171
173
  type: Boolean,
172
174
  default: false,
173
175
  },
176
+ externalLinks: {
177
+ type: Boolean,
178
+ default: false,
179
+ },
174
180
  },
175
181
  data() {
176
182
  return {
@@ -179,6 +185,9 @@ export default {
179
185
  };
180
186
  },
181
187
  computed: {
188
+ readMorePath() {
189
+ return this.customLoanDetails ? '' : `/lend/${this.loanId}`;
190
+ },
182
191
  loanId() {
183
192
  return this.loan?.id;
184
193
  },
@@ -230,7 +239,7 @@ export default {
230
239
  useFormSubmit() {
231
240
  if (this.hideShowLendDropdown
232
241
  || this.lendButtonVisibility
233
- || this.lendAgainButton
242
+ || this.showLendAgain
234
243
  || this.state === 'lent-to'
235
244
  || this.isAdding) {
236
245
  return true;
@@ -213,3 +213,13 @@ export const ViewLoan = story({
213
213
  photoPath,
214
214
  showViewLoan: true,
215
215
  });
216
+
217
+ export const LendAgain = story({
218
+ loanId: loan.id,
219
+ loan: {
220
+ ...loan,
221
+ userProperties: { lentTo: true },
222
+ },
223
+ kvTrackFunction,
224
+ photoPath,
225
+ });
@@ -15,7 +15,6 @@ const story = (args) => {
15
15
  :show-now="showNow"
16
16
  :amount-left="amountLeft"
17
17
  :complete-loan="completeLoan"
18
- :is-adding="isAdding"
19
18
  />
20
19
  `,
21
20
  });
@@ -30,5 +29,3 @@ export const ShowNow = story({ showNow: true });
30
29
  export const AmountLeft = story({ amountLeft: 5 });
31
30
 
32
31
  export const CompleteLoan = story({ completeLoan: true });
33
-
34
- export const IsAdding = story({ isAdding: true });