Skip to content

Commit 4b3dd20

Browse files
authored
Merge pull request #73 from dOrgTech/issue-32-use_context
useContext supported
2 parents 79ae120 + b1bf231 commit 4b3dd20

43 files changed

Lines changed: 1004 additions & 310 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,27 @@
55
**Turn any React app into a DAO enabled dApp in just:**
66

77
1...
8+
89
```bash
910
npm i --save @daostack/arc.react`
1011
```
1112

1213
2...
14+
1315
```html
1416
<Arc config={new ArcConfig("rinkeby")}>
1517
```
1618

1719
3...
20+
1821
```html
19-
<DAO address="0xMY_DAO">
22+
<DAO address="0xMY_DAO"></DAO>
2023
```
2124

2225
**Enabling you to build custom interfaces for displaying and interacting with your DAO's:**
2326
2427
members...
28+
2529
```html
2630
<Members>
2731
<Member.Data>

src/components/DAO.tsx

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -32,37 +32,43 @@ class InferredDAO extends Component<InferredProps, Entity, Data> {
3232

3333
public static get Entity() {
3434
return CreateContextFeed(
35-
this._EntityContext.Consumer,
36-
this._LogsContext.Consumer,
35+
this.EntityContext.Consumer,
36+
this.LogsContext.Consumer,
3737
"DAO"
3838
);
3939
}
4040

4141
public static get Data() {
4242
return CreateContextFeed(
43-
this._DataContext.Consumer,
44-
this._LogsContext.Consumer,
43+
this.DataContext.Consumer,
44+
this.LogsContext.Consumer,
4545
"DAO"
4646
);
4747
}
4848

4949
public static get Logs() {
5050
return CreateContextFeed(
51-
this._LogsContext.Consumer,
52-
this._LogsContext.Consumer,
51+
this.LogsContext.Consumer,
52+
this.LogsContext.Consumer,
5353
"DAO"
5454
);
5555
}
5656

57-
protected static _EntityContext = React.createContext<Entity | undefined>(
57+
public static EntityContext = React.createContext<Entity | undefined>(
5858
undefined
5959
);
60-
protected static _DataContext = React.createContext<Data | undefined>(
60+
public static DataContext = React.createContext<Data | undefined>(undefined);
61+
public static LogsContext = React.createContext<ComponentLogs | undefined>(
6162
undefined
6263
);
63-
protected static _LogsContext = React.createContext<
64-
ComponentLogs | undefined
65-
>(undefined);
64+
}
65+
66+
function useDAO(): [Data | undefined, Entity | undefined] {
67+
const data = React.useContext<Data | undefined>(InferredDAO.DataContext);
68+
const entity = React.useContext<Entity | undefined>(
69+
InferredDAO.EntityContext
70+
);
71+
return [data, entity];
6672
}
6773

6874
class DAO extends React.Component<RequiredProps> {
@@ -95,4 +101,4 @@ class DAO extends React.Component<RequiredProps> {
95101

96102
export default DAO;
97103

98-
export { DAO, InferredDAO, Entity as DAOEntity, Data as DAOData };
104+
export { DAO, InferredDAO, Entity as DAOEntity, Data as DAOData, useDAO };

src/components/Member.tsx

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -46,37 +46,44 @@ class InferredMember extends Component<InferredProps, Entity, Data> {
4646

4747
public static get Entity() {
4848
return CreateContextFeed(
49-
this._EntityContext.Consumer,
50-
this._LogsContext.Consumer,
49+
this.EntityContext.Consumer,
50+
this.LogsContext.Consumer,
5151
"Member"
5252
);
5353
}
5454

5555
public static get Data() {
5656
return CreateContextFeed(
57-
this._DataContext.Consumer,
58-
this._LogsContext.Consumer,
57+
this.DataContext.Consumer,
58+
this.LogsContext.Consumer,
5959
"Member"
6060
);
6161
}
6262

6363
public static get Logs() {
6464
return CreateContextFeed(
65-
this._LogsContext.Consumer,
66-
this._LogsContext.Consumer,
65+
this.LogsContext.Consumer,
66+
this.LogsContext.Consumer,
6767
"Member"
6868
);
6969
}
7070

71-
protected static _EntityContext = React.createContext<Entity | undefined>(
71+
public static EntityContext = React.createContext<Entity | undefined>(
7272
undefined
7373
);
74-
protected static _DataContext = React.createContext<Data | undefined>(
74+
public static DataContext = React.createContext<Data | undefined>(undefined);
75+
public static LogsContext = React.createContext<ComponentLogs | undefined>(
7576
undefined
7677
);
77-
protected static _LogsContext = React.createContext<
78-
ComponentLogs | undefined
79-
>(undefined);
78+
}
79+
80+
function useMember(): [Data | undefined, Entity | undefined] {
81+
const data = React.useContext<Data | undefined>(InferredMember.DataContext);
82+
const entity = React.useContext<Entity | undefined>(
83+
InferredMember.EntityContext
84+
);
85+
86+
return [data, entity];
8087
}
8188

8289
class Member extends React.Component<RequiredProps> {
@@ -127,4 +134,10 @@ class Member extends React.Component<RequiredProps> {
127134

128135
export default Member;
129136

130-
export { Member, InferredMember, Entity as MemberEntity, Data as MemberData };
137+
export {
138+
Member,
139+
InferredMember,
140+
Entity as MemberEntity,
141+
Data as MemberData,
142+
useMember,
143+
};

src/components/Queue.tsx

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -43,37 +43,44 @@ class InferredQueue extends Component<InferredProps, Entity, Data> {
4343

4444
public static get Entity() {
4545
return CreateContextFeed(
46-
this._EntityContext.Consumer,
47-
this._LogsContext.Consumer,
46+
this.EntityContext.Consumer,
47+
this.LogsContext.Consumer,
4848
"Queue"
4949
);
5050
}
5151

5252
public static get Data() {
5353
return CreateContextFeed(
54-
this._DataContext.Consumer,
55-
this._LogsContext.Consumer,
54+
this.DataContext.Consumer,
55+
this.LogsContext.Consumer,
5656
"Queue"
5757
);
5858
}
5959

6060
public static get Logs() {
6161
return CreateContextFeed(
62-
this._LogsContext.Consumer,
63-
this._LogsContext.Consumer,
62+
this.LogsContext.Consumer,
63+
this.LogsContext.Consumer,
6464
"Queue"
6565
);
6666
}
6767

68-
protected static _EntityContext = React.createContext<Entity | undefined>(
68+
public static EntityContext = React.createContext<Entity | undefined>(
6969
undefined
7070
);
71-
protected static _DataContext = React.createContext<Data | undefined>(
71+
public static DataContext = React.createContext<Data | undefined>(undefined);
72+
public static LogsContext = React.createContext<ComponentLogs | undefined>(
7273
undefined
7374
);
74-
protected static _LogsContext = React.createContext<
75-
ComponentLogs | undefined
76-
>(undefined);
75+
}
76+
77+
function useQueue(): [Data | undefined, Entity | undefined] {
78+
const data = React.useContext<Data | undefined>(InferredQueue.DataContext);
79+
const entity = React.useContext<Entity | undefined>(
80+
InferredQueue.EntityContext
81+
);
82+
83+
return [data, entity];
7784
}
7885

7986
class Queue extends React.Component<RequiredProps> {
@@ -120,4 +127,10 @@ class Queue extends React.Component<RequiredProps> {
120127

121128
export default Queue;
122129

123-
export { Queue, InferredQueue, Entity as QueueEntity, Data as QueueData };
130+
export {
131+
Queue,
132+
InferredQueue,
133+
Entity as QueueEntity,
134+
Data as QueueData,
135+
useQueue,
136+
};

src/components/Reputation.tsx

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -44,37 +44,46 @@ class InferredReputation extends Component<InferredProps, Entity, Data> {
4444

4545
public static get Entity() {
4646
return CreateContextFeed(
47-
this._EntityContext.Consumer,
48-
this._LogsContext.Consumer,
47+
this.EntityContext.Consumer,
48+
this.LogsContext.Consumer,
4949
"Reputation"
5050
);
5151
}
5252

5353
public static get Data() {
5454
return CreateContextFeed(
55-
this._DataContext.Consumer,
56-
this._LogsContext.Consumer,
55+
this.DataContext.Consumer,
56+
this.LogsContext.Consumer,
5757
"Reputation"
5858
);
5959
}
6060

6161
public static get Logs() {
6262
return CreateContextFeed(
63-
this._LogsContext.Consumer,
64-
this._LogsContext.Consumer,
63+
this.LogsContext.Consumer,
64+
this.LogsContext.Consumer,
6565
"Reputation"
6666
);
6767
}
6868

69-
protected static _EntityContext = React.createContext<Entity | undefined>(
69+
public static EntityContext = React.createContext<Entity | undefined>(
7070
undefined
7171
);
72-
protected static _DataContext = React.createContext<Data | undefined>(
72+
public static DataContext = React.createContext<Data | undefined>(undefined);
73+
public static LogsContext = React.createContext<ComponentLogs | undefined>(
7374
undefined
7475
);
75-
protected static _LogsContext = React.createContext<
76-
ComponentLogs | undefined
77-
>(undefined);
76+
}
77+
78+
function useReputation(): [Data | undefined, Entity | undefined] {
79+
const data = React.useContext<Data | undefined>(
80+
InferredReputation.DataContext
81+
);
82+
const entity = React.useContext<Entity | undefined>(
83+
InferredReputation.EntityContext
84+
);
85+
86+
return [data, entity];
7887
}
7988

8089
class Reputation extends React.Component<RequiredProps> {
@@ -129,4 +138,5 @@ export {
129138
InferredReputation,
130139
Entity as ReputationEntity,
131140
Data as ReputationData,
141+
useReputation,
132142
};

src/components/Reward.tsx

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -33,37 +33,44 @@ class InferredReward extends Component<InferredProps, Entity, Data> {
3333

3434
public static get Entity() {
3535
return CreateContextFeed(
36-
this._EntityContext.Consumer,
37-
this._LogsContext.Consumer,
36+
this.EntityContext.Consumer,
37+
this.LogsContext.Consumer,
3838
"Reward"
3939
);
4040
}
4141

4242
public static get Data() {
4343
return CreateContextFeed(
44-
this._DataContext.Consumer,
45-
this._LogsContext.Consumer,
44+
this.DataContext.Consumer,
45+
this.LogsContext.Consumer,
4646
"Reward"
4747
);
4848
}
4949

5050
public static get Logs() {
5151
return CreateContextFeed(
52-
this._LogsContext.Consumer,
53-
this._LogsContext.Consumer,
52+
this.LogsContext.Consumer,
53+
this.LogsContext.Consumer,
5454
"Reward"
5555
);
5656
}
5757

58-
protected static _EntityContext = React.createContext<Entity | undefined>(
58+
public static EntityContext = React.createContext<Entity | undefined>(
5959
undefined
6060
);
61-
protected static _DataContext = React.createContext<Data | undefined>(
61+
public static DataContext = React.createContext<Data | undefined>(undefined);
62+
public static LogsContext = React.createContext<ComponentLogs | undefined>(
6263
undefined
6364
);
64-
protected static _LogsContext = React.createContext<
65-
ComponentLogs | undefined
66-
>(undefined);
65+
}
66+
67+
function useReward(): [Data | undefined, Entity | undefined] {
68+
const data = React.useContext<Data | undefined>(InferredReward.DataContext);
69+
const entity = React.useContext<Entity | undefined>(
70+
InferredReward.EntityContext
71+
);
72+
73+
return [data, entity];
6774
}
6875

6976
class Reward extends React.Component<RequiredProps> {
@@ -96,4 +103,10 @@ class Reward extends React.Component<RequiredProps> {
96103

97104
export default Reward;
98105

99-
export { Reward, InferredReward, Entity as RewardEntity, Data as RewardData };
106+
export {
107+
Reward,
108+
InferredReward,
109+
Entity as RewardEntity,
110+
Data as RewardData,
111+
useReward,
112+
};

0 commit comments

Comments
 (0)