Skip to content

Commit f9ef565

Browse files
committed
fix spaces available
1 parent 8c0a855 commit f9ef565

File tree

6 files changed

+45
-25
lines changed

6 files changed

+45
-25
lines changed

config-overrides.js

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,18 @@ module.exports = function override (config, env) {
1212
// https://github.com/facebookincubator/create-react-app/issues/2498
1313
config.module.rules[1].oneOf.splice(0, 0,
1414
{
15-
test: /\.(sass|scss|css)$/,
16-
use: [
17-
'style-loader',
18-
'css-loader',
19-
{
20-
loader: 'sass-loader',
21-
options: {
22-
outputStyle: 'compressed',
23-
includePaths: [path.resolve(__dirname, 'node_modules')],
24-
}
15+
test: /\.(sass|scss|css)$/,
16+
use: [
17+
'style-loader',
18+
'css-loader',
19+
{
20+
loader: 'sass-loader',
21+
options: {
22+
outputStyle: 'compressed',
23+
includePaths: [path.resolve(__dirname, 'node_modules')],
2524
}
26-
]
25+
}
26+
]
2727
},
2828
)
2929
if (env === 'production') {

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@
3535
},
3636
"dependencies": {
3737
"babel-polyfill": "^6.26.0",
38-
"date-fns": "^1.29.0",
3938
"enzyme": "^3.3.0",
4039
"enzyme-adapter-react-16": "^1.1.1",
4140
"html-webpack-plugin": "^2.30.1",

src/components/appointments/Appointments.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,12 @@ const group_appointments = apts => {
1616
}
1717

1818
const Apt = ({apt, props, appointment_attendees}) => {
19-
const full = apt.attendees_max === apt.attendees_count
2019
let status
21-
const spaces_ctx = {spaces: apt.attendees_max - apt.attendees_count}
20+
const spaces_ctx = {spaces: apt.attendees_max === null ? null : apt.attendees_max - apt.attendees_count}
2221
if (appointment_attendees && appointment_attendees[apt.id] !== undefined) {
23-
status = props.config.get_text(full ? 'no_spaces_attending' : 'spaces_attending', spaces_ctx)
22+
status = props.config.get_text('spaces_attending', spaces_ctx)
2423
} else {
25-
status = props.config.get_text(full ? 'no_spaces' : 'spaces', spaces_ctx)
24+
status = props.config.get_text('spaces', spaces_ctx)
2625
}
2726
return (
2827
<Link to={props.root.url(`appointment/${apt.link}`)} className="tcs-item">

src/components/appointments/AptModal.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@ const AptDetails = ({apt, spaces_available, attending, props}) => {
1515
<div className="tcs-right tcs-timezone">
1616
{props.config.get_text('assuming_timezone', {timezone: props.config.timezone})}
1717
</div>
18-
<div className={`tcs-apt-details ${spaces_available ? 'tcs-bookable' : ''}`}>
18+
<div className={`tcs-apt-details ${spaces_available === 0 ? '' : 'tcs-bookable'}`}>
1919
<div>
2020
<CalendarIcon/>
2121
</div>
2222
<div className="tcs-price">
2323
{c.format_money(apt.price)}
2424
</div>
2525
<div>
26-
{c.get_text(spaces_available === 0 ? 'no_spaces' : 'spaces', {spaces: spaces_available})}
26+
{c.get_text('spaces', {spaces: spaces_available})}
2727
</div>
2828
<IfElse v={apt.start.substr(0, 10) === apt.finish.substr(0, 10)}>
2929
<div>
@@ -185,8 +185,10 @@ class AptModal extends Component {
185185
</span>
186186
)
187187
const students = this.get_students()
188-
const spaces_available = apt.attendees_max - apt.attendees_count - this.state.extra_attendees
189-
const booking_allowed = this.state.booking_allowed && spaces_available > 0
188+
let spaces_available = (
189+
apt.attendees_max === null ? null : apt.attendees_max - apt.attendees_count - this.state.extra_attendees
190+
)
191+
const booking_allowed = this.state.booking_allowed && spaces_available !== 0
190192
return (
191193
<Modal history={this.props.history} title={title} last_url={this.props.last_url} flex={false}>
192194
<AptDetails apt={apt}

src/formatting.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ export function get_text (name, replacements) {
44
console.warn(`not translation found for "${name}"`)
55
return name
66
}
7+
if (typeof(s) === 'function') {
8+
return s(replacements)
9+
}
710
if (replacements) {
811
for (let [k, v] of Object.entries(replacements)) {
912
s = s.replace(`{${k}}`, v)

src/index.js

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,17 +56,34 @@ const STRINGS = {
5656
diff_1hour_minutes: '1 hour {minutes} mins',
5757
diff_hours: '{hours} hours',
5858
diff_hours_minutes: '{hours} hours {minutes} mins',
59-
spaces: '{spaces} spaces available',
60-
no_spaces: 'No spaces available',
61-
spaces_attending: "You're already attending, {spaces} more spaces available",
62-
no_spaces_attending: "You're already attending, no more spaces available",
59+
spaces: ({ spaces }) => {
60+
if (spaces === null) {
61+
return 'Spaces available'
62+
} else if (spaces === 0) {
63+
return 'No spaces available'
64+
} else if (spaces === 1) {
65+
return '1 space available'
66+
} else {
67+
return `${spaces} spaces available`
68+
}
69+
},
70+
spaces_attending: ({ spaces }) => {
71+
if (spaces === null) {
72+
return "You're already attending, more spaces available"
73+
} else if (spaces === 0) {
74+
return "You're already attending, no more spaces available"
75+
} else if (spaces === 1) {
76+
return "You're already attending, 1 more space available"
77+
} else {
78+
return `You're already attending, ${spaces} more spaces available`
79+
}
80+
},
6381
add_existing_students: 'Add your existing Students to the lesson',
6482
add_new_student: 'Add a new Student to the lesson',
6583
appointment_not_found: 'Appointment not Found',
6684
appointment_not_found_id: 'No Appointment found with id {apt_id}.',
6785
price: 'Price',
6886
job: 'Job',
69-
spaces_available: 'Spaces Available',
7087
start: 'Start',
7188
finish: 'Finish',
7289
location: 'Location',

0 commit comments

Comments
 (0)