Skip to content

Commit d2268c2

Browse files
authored
Read features directly from Config context in GroupFormHeader (#9489)
1 parent c0805ca commit d2268c2

File tree

4 files changed

+24
-9
lines changed

4 files changed

+24
-9
lines changed

h/static/scripts/group-forms/components/CreateEditGroupForm.tsx

+1-5
Original file line numberDiff line numberDiff line change
@@ -236,11 +236,7 @@ export default function CreateEditGroupForm({
236236

237237
return (
238238
<FormContainer classes="max-w-[530px] mx-auto">
239-
<GroupFormHeader
240-
group={group}
241-
title={heading}
242-
enableMembers={config.features.group_members}
243-
/>
239+
<GroupFormHeader group={group} title={heading} />
244240
<form onSubmit={onSubmit} data-testid="form">
245241
<TextField
246242
type="input"

h/static/scripts/group-forms/components/GroupFormHeader.tsx

+5-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ import type { ComponentChildren } from 'preact';
44
import { Link as RouterLink, useRoute } from 'wouter-preact';
55

66
import type { Group } from '../config';
7+
import { Config } from '../config';
78
import { routes } from '../routes';
9+
import { useContext } from 'preact/hooks';
810

911
type TabLinkProps = {
1012
href: string;
@@ -32,14 +34,15 @@ function TabLink({ children, href, testId }: TabLinkProps) {
3234
export type GroupFormHeaderProps = {
3335
group: Group | null;
3436
title: string;
35-
enableMembers?: boolean;
3637
};
3738

3839
export default function GroupFormHeader({
39-
enableMembers = true,
4040
group,
4141
title,
4242
}: GroupFormHeaderProps) {
43+
const config = useContext(Config);
44+
const enableMembers = config?.features.group_members;
45+
4346
// This should be replaced with a proper URL generation function that handles
4447
// escaping etc.
4548
const editLink = group

h/static/scripts/group-forms/components/test/EditGroupMembersForm-test.js

+1
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ describe('EditGroupMembersForm', () => {
9999
userid: 'acct:jane@localhost',
100100
},
101101
},
102+
features: {},
102103
};
103104

104105
dateFormatter = {

h/static/scripts/group-forms/components/test/GroupFormHeader-test.js

+17-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,23 @@
11
import { checkAccessibility, mount } from '@hypothesis/frontend-testing';
22

33
import GroupFormHeader from '../GroupFormHeader';
4+
import { Config } from '../../config';
45

56
describe('GroupFormHeader', () => {
6-
const createHeader = (props = {}) => mount(<GroupFormHeader {...props} />);
7+
let config;
8+
9+
beforeEach(() => {
10+
config = {
11+
features: { group_members: true },
12+
};
13+
});
14+
15+
const createHeader = (props = {}) =>
16+
mount(
17+
<Config.Provider value={config}>
18+
<GroupFormHeader {...props} />
19+
</Config.Provider>,
20+
);
721

822
const group = {
923
pubid: 'abc123',
@@ -38,7 +52,8 @@ describe('GroupFormHeader', () => {
3852
});
3953

4054
it('does not show tabs if the members flag is disabled', () => {
41-
const header = createHeader({ group, enableMembers: false });
55+
config.features.group_members = false;
56+
const header = createHeader({ group });
4257
assert.isTrue(getLink(header, 'activity-link').exists());
4358
assert.isFalse(getLink(header, 'settings-link').exists());
4459
assert.isFalse(getLink(header, 'members-link').exists());

0 commit comments

Comments
 (0)