I've distanced myself from a friend this year, after she treated me badly.
I have known her for almost 20 years. Our kids have been close (not so much now, but still good friends), we've been on family holidays with them multiple times, spent some New Years together. She's been very generous, such as bringing me lovely food when my DD was newborn and my DH was away with work, 40 presents on my 40th birthday, plus inviting us on holidays where we only had to cover our flights, as a few examples.
I am grateful for these things, but it's also led to some discomfort. She's got an anger problem, flares up at people and can be dismissive of people. She wants things done her way, and if they're not, she has no hesitation in letting you know, with no effort to hide her frustration. She tells off my DD in front of me for things that she lets her DS do with no repercussions. I've bitten my tongue A LOT over the years, as I've felt uncomfortable in setting boundaries or standing up to her, given her generosity.
A few months ago, I was helping at a full-weekend kids activity which she organised. There were about 20 kids there and several adults volunteering to help. She told me off for something she perceived I had done wrong, in front of several people, and later on several other people (who hadn't been present for the telling-off) commented to me 'wow, xxx is really unhappy with you' and comments along those lines - so she'd clearly been bitching and complaining about me after she'd stormed off. The thing I had done wrong is let some of the younger kids stay in their room and go to sleep rather than being forced to watch a movie when they were too tired - I stayed outside their rooms so they could find an adult if they needed one. Apparently that was wrong even though I'd told her I was going to do this earlier in the evening (one kid had been crying with tiredness) and she'd said 'I don't care' at the time. Another adult was with me throughout, so that wasn't the problem. The following day she was angry with me again for another apparent issue, which genuinely wasn't an issue - it involved someone being less than 2 minutes late (I'm not exaggerating) to meet the rest of the group because I'd said they could finish off an activity. She never apologised or thanked me for volunteering.
Since February when this happened, I haven't seen her socially. Our kids do a couple of the same after school activities (they're not at the same school) so I have seen her at pick up / drop off a handful of times (sometimes the DHs do it, so have been able to avoid for the most part). She's mentioned to a mutual friend that she thinks I'm upset with her. She's tried to make plans to meet up over the summer but I've been able to avoid due to work.
What should I do - have a grown up conversation with her to explain my reasons for distance, just let it go, send an email? I don't miss the friendship and feel the weekend in February was a 'final straw' in terms of not allowing myself to be treated badly. I hate confrontation and don't want a big showdown about it. I want to prioritise friendships that don't make me feel small.