To all those assuming the OP’s friend must have financial problems, I would say I doubt it. From my experience, people having financial problems are very, very aware of every penny going out and the impact of that. They are more acutely aware of the value of money, so would never ask someone to pick up all those odd things without actually paying it back immediately. Because they know what it’s like to be short and wouldn’t want to put anyone else in that position. My experience has been its people with money that are more likely to do this - because they genuinely don’t think about it. What’s £10 between friends here or there. They might not even notice they are the only one ever doing it because they never pay attention to money.
Now in the OP’s case I don’t think it’s an accident, but I do think that their “friend” is unlikely to have money problems. It’s certainly one way people with money keep their money.....
I was given a book when I was 16 called “Getting in touch with your inner bitch”. Excellent book by the way. The key take out is one line - “I don’t think so”. That’s your response EVERY TIME.
CF - “Can you grab me these PJ’s in Debenhams later?”
OP - “I don’t think so”
CF - “Can you put all the shopping through as I don’t like using my card?”
OP - “I don’t think so”
And so on. They can’t argue with it. It’s very clear that you aren’t going to be taken for a mug anymore too.
If all else fails, remember this - if you lend someone £20 and never see them again, it was probably worth it. Cut her off and if they don’t pay you back you’ll never see them again, meaning you are out of a very toxic friendship! Might have cost you £50 but saved you a lot more long term!
Good luck sorting her out.